Register a bridge transfer for tracking
POST/api/v1/bridge/intents
Called right after the source transaction is broadcast. Idempotent on source chain, source transaction hash AND account - a repeat by the same account answers 200 with the stored transfer, and a second account naming the same transaction gets its own transfer, which the tracker then rejects with recipient_mismatch. Nothing in the body is trusted beyond identity; the tracker overwrites the amount and mode with the values decoded from the chain. USDC is pinned to the CCTP rail and every other asset to the canonical bridge.
Request
Responses
- 200
- 201
- 400
- 401
- 403
- 409
- 429
- default
This source transaction was already registered by this account
The transfer is now tracked
Malformed hash, amount, enum value, or a rail the asset may not use.
Missing, invalid, or expired read tokens.
The account in the body is not the authenticated account.
The account already has the maximum number of open transfers (open_intent_cap).
The account's action budget is exhausted, or it collected more than BRIDGE_INTENT_MAX_REJECTED_PER_DAY rejected transfers in the last 24 hours (bridge_rejection_budget).
Error response. Prefer the nested ApiErrorResponse via X-SC-Error-Format: envelope-v1; existing unnegotiated handler responses can retain a documented legacy flat shape through the compatibility period.
Response Headers
Stable request correlation id generated or echoed by the server.