Verify a cosignature and spend it
curl --request POST \
--url https://api.kordio.io/control/v1/cosign/consume \
--header 'Content-Type: application/json' \
--data '
{
"authorization": "<string>",
"consumed_by": "<string>"
}
'import requests
url = "https://api.kordio.io/control/v1/cosign/consume"
payload = {
"authorization": "<string>",
"consumed_by": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({authorization: '<string>', consumed_by: '<string>'})
};
fetch('https://api.kordio.io/control/v1/cosign/consume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kordio.io/control/v1/cosign/consume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'authorization' => '<string>',
'consumed_by' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kordio.io/control/v1/cosign/consume"
payload := strings.NewReader("{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kordio.io/control/v1/cosign/consume")
.header("Content-Type", "application/json")
.body("{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kordio.io/control/v1/cosign/consume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"valid": true,
"reason": "<string>",
"intent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action_type": "<string>",
"resource": "<string>",
"amount_cents": 123,
"currency": "<string>",
"policy_version": "<string>",
"frame_hash": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"code": "runtime_key_required"
}
}{
"data": {
"valid": false,
"reason": "malformed"
}
}Verify a cosignature and spend it
Unauthenticated. Does everything verify does, and then marks the authority spent
so the same cosignature cannot be presented twice.
Use this when you are the executor and you are about to act. verify answers “is
this good?”; consume answers “is this good, and it is mine now”. A second call
with the same cosignature reports already_settled.
Send the token either as the body field authorization or as an
Authorization: Bearer <jwt> header.
POST
/
control
/
v1
/
cosign
/
consume
Verify a cosignature and spend it
curl --request POST \
--url https://api.kordio.io/control/v1/cosign/consume \
--header 'Content-Type: application/json' \
--data '
{
"authorization": "<string>",
"consumed_by": "<string>"
}
'import requests
url = "https://api.kordio.io/control/v1/cosign/consume"
payload = {
"authorization": "<string>",
"consumed_by": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({authorization: '<string>', consumed_by: '<string>'})
};
fetch('https://api.kordio.io/control/v1/cosign/consume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kordio.io/control/v1/cosign/consume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'authorization' => '<string>',
'consumed_by' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kordio.io/control/v1/cosign/consume"
payload := strings.NewReader("{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kordio.io/control/v1/cosign/consume")
.header("Content-Type", "application/json")
.body("{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kordio.io/control/v1/cosign/consume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"authorization\": \"<string>\",\n \"consumed_by\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"valid": true,
"reason": "<string>",
"intent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"action_type": "<string>",
"resource": "<string>",
"amount_cents": 123,
"currency": "<string>",
"policy_version": "<string>",
"frame_hash": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"code": "runtime_key_required"
}
}{
"data": {
"valid": false,
"reason": "malformed"
}
}