Intent

Create payment requests that move balances between wallets.

A payment intent is a request to move balances in the ledger. Each intent contains one or more claims, where each claim describes a specific movement such as transferring funds between wallets, issuing new balances, or collecting fees.

The ledger processes all claims within an intent atomically — either every claim succeeds or none do. When source or target wallets have bridges assigned, those bridges participate in a two-phase commit protocol coordinated by the DTC (Distributed Transaction Coordinator). Each bridge must prepare the intent claims before the ledger commits them. When no bridges are involved, the intent is prepared and committed immediately.

Only transfer claims trigger bridge participation. Issue and destroy claims are resolved by the ledger without contacting bridges.

Each intent has a unique handle for idempotency and retrieval, and can carry custom data like invoice numbers or payment descriptions.

Endpoints

MethodPathDescription
POST/intentsSubmit a payment intent to move balances between wallets.
GET/intentsQuery intents with filtering, sorting, and pagination.
GET/intents/{id}Retrieve an intent by its handle or LUID.
POST/intents/{id}/proofsSubmit a signed proof to an intent record.

Access & History

MethodPathDescription
POST/intents/{id}/access/!checkEvaluate what actions a signer can perform on this intent.
GET/intents/{id}/changesRetrieve the change history of an intent by its handle or LUID.
GET/intents/{id}/changes/{change}Retrieve a change record for an intent by handle or LUID and change number.

On this page