intents_submit
const url = 'https://example.com/intents';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"intent":{"attrs":{"fields":{"additionalProperty":"example"}},"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","policy_id":"example"},"signature":{"Ed25519":{"pub_key":"example","signature":"example"}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/intents \ --header 'Content-Type: application/json' \ --data '{ "intent": { "attrs": { "fields": { "additionalProperty": "example" } }, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "policy_id": "example" }, "signature": { "Ed25519": { "pub_key": "example", "signature": "example" } } }'Submit a signed intent.
The signature is verified and the referenced policy must exist before the intent is stored.
Request Body required
Section titled “Request Body required ”Intent signed by the user.
The signature is over the JCS (JSON Canonicalization Scheme, RFC 8785)
serialization of the intent. The intent must therefore be serialized
with JCS and signed, for instance as follows in Typescript.
import canonicalize from "canonicalize";
const jcs = canonicalize(json_intent)
const bytes = new TextEncoder().encode(jcs)
const signed = signer.signBytes(bytes)object
The intent that is being signed.
object
Attribute values that parameterize the policy.
In JSON, omit this field instead of putting "attrs": null.
object
object
Unique identifier for this intent.
ID of the policy that defines the rules for fulfilling this intent.
Ed25519 signature
object
Ed25519 signature
object
The [PubKey] of the signer
The [Signature]
Passkey signature
object
Passkey signature
object
The bs58-encoded bytes of the authenticator data.
String containing the client data JSON.
This field is a string because JSON does not define property order, and we must guarantee that the UTF8 bytes of this string are exactly the same as those used by the passkey device.
ECDSA Public Key
ECDSA signature
Multisig signature
object
Multisig signature
object
The multisig descriptor to be checked against
object
The list of signers and their associated weight
object
The threshold above which a subset of the signers can emit a valid signature
The list of signatures
Ed25519 signature
object
Ed25519 signature
object
The [PubKey] of the signer
The [Signature]
Passkey signature
object
Passkey signature
object
The bs58-encoded bytes of the authenticator data.
String containing the client data JSON.
This field is a string because JSON does not define property order, and we must guarantee that the UTF8 bytes of this string are exactly the same as those used by the passkey device.
ECDSA Public Key
ECDSA signature
Example generated
{ "intent": { "attrs": { "fields": { "additionalProperty": "example" } }, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "policy_id": "example" }, "signature": { "Ed25519": { "pub_key": "example", "signature": "example" } }}Responses
Section titled “ Responses ”Intent accepted
Bad request
object
Example generated
{ "message": "example"}Intent already exists
object
Example generated
{ "message": "example"}Internal error
object
Example generated
{ "message": "example"}