Intents are idempotent. Always generate and persist your own
intentId
. If you retry a request with the same intentId
, the API will safely return the same intent.Prerequisites
- Workspace ID (e.g.
v5xez43nnluqmyhhw67x
), you can get it from the Workspace -> Settings page - Account ID with a valid deposit address for the
fromAssetId
(Account settings) - API Key with “Manage Transfers” permissions
- At least one of
fromAmount
ortoAmount
defined (do not set both unless your integration explicitly supports it)
Step 1: Create an Intent request
- intentId: Client-generated unique ID, used as idempotency key
- status: Current lifecycle state (user-initiated, auction-in-progress, completed, etc.)
- maxPrice: Upper price limit enforced by protocol
- expiresAt: Quote expiration (epoch ms)
- userSettlementDeadline: Hard deadline for user settlement
Step 2: Poll Intent Status and price
Wait until you see a
price
with status auction-in-progress
before proceeding to settlement.Step 3: Create Transaction for Settlement
Once you are ready to settle, create a transaction referencing the intentId.Step 4: Signing Transactions
Transactions created for intents require a signature step. You can sign them in two ways:- Manually via the Bron desktop application (user flow)
- Automatically with the MPC Hot Signer
The MPC Hot Signer enables automated transaction signing inside your infrastructure.
This is recommended for enterprise integrations that require non-interactive settlement.
Step 5: Monitor Until Completion (optional)
Use the Transactions API to track status until a terminal state (completed):- Settle before the userSettlementDeadline expired
- Missed deadlines lead to automatic cancellation
- Re-using an existing intentId will return the same intent if it was already created