Intents

List intents, newest first

GET/v1/intents

Parameters

  • wallet in query, string
  • limit in query, integer
  • offset in query, integer,null

Responses

200Intents (paged: limit ≤ 200, default 50)

  • intents object[] (required)

Example

curl -X GET https://api.cofferline.com/v1/intents \
  -H "authorization: Bearer $TOKEN"

Create a conversion intent (enforced against the wallet's active policy)

POST/v1/intents

Request body

  • wallet string (required)
  • kind "conversion" | "gas_topup" (required)
  • sell_token string (required)
  • buy_token string (required)
  • sell_amount string (required)
  • max_slippage_bps integer
  • venues string[]

Responses

201Planned intent

  • id string (required)
  • wallet string (required)
  • kind "conversion" | "gas_topup" (required)
  • status "planned" | "executing" | "filled" | "cancelled" | "aborted" (required)
  • policy_version integer (required)
  • policy_hash string (required)
  • params object (required)
  • created_at object (required)
  • updated_at object (required)
  • report object (required)

400INVALID_REQUEST — a token is not supported on this chain
402Payment required — prepaid balance below the intent fee (when metering is enforced)
403EXECUTION_DISABLED — wallet-specific platform switch
404No policy exists for the wallet
422POLICY_VIOLATION — request exceeds the active policy
503UNAVAILABLE — the executor queue refused the dispatch; the intent was aborted, not admitted

Example

curl -X POST https://api.cofferline.com/v1/intents \
  -H "authorization: Bearer $TOKEN" \
  -H "content-type: application/json" \
  -d '{"wallet":"…","kind":"conversion","sell_token":"…","buy_token":"…","sell_amount":"…"}'

Fetch an intent

GET/v1/intents/{id}

Parameters

  • id in path, string (required)

Responses

200The intent

  • id string (required)
  • wallet string (required)
  • kind "conversion" | "gas_topup" (required)
  • status "planned" | "executing" | "filled" | "cancelled" | "aborted" (required)
  • policy_version integer (required)
  • policy_hash string (required)
  • params object (required)
  • created_at object (required)
  • updated_at object (required)
  • report object (required)

404Unknown intent

Example

curl -X GET https://api.cofferline.com/v1/intents/{id} \
  -H "authorization: Bearer $TOKEN"

Cancel a planned intent

POST/v1/intents/{id}/cancel

Parameters

  • id in path, string (required)

Responses

200Cancelled

  • id string (required)
  • wallet string (required)
  • kind "conversion" | "gas_topup" (required)
  • status "planned" | "executing" | "filled" | "cancelled" | "aborted" (required)
  • policy_version integer (required)
  • policy_hash string (required)
  • params object (required)
  • created_at object (required)
  • updated_at object (required)
  • report object (required)

403The intent's wallet is outside the key's wallet scope (#289)
404Unknown intent or not cancellable

Example

curl -X POST https://api.cofferline.com/v1/intents/{id}/cancel \
  -H "authorization: Bearer $TOKEN"