code and a human-readable message. Switch on code; show message only as a debug aid (don’t display verbatim to end users).
Validation errors
Returned byintent.build() and intent.submit() when input is malformed.
| Code | Meaning | What to do |
|---|---|---|
INTENT_DEADLINE_PAST | deadline is in the past | Recompute deadline |
UNSUPPORTED_CHAIN | sourceChain or destChain not supported | Check supported chains |
UNSUPPORTED_ASSET | tokenIn or tokenOut not supported on the given chain | Use a supported asset |
AMOUNT_BELOW_MINIMUM | amountIn below the per-asset minimum | Increase the amount |
AMOUNT_ABOVE_MAXIMUM | amountIn above the per-asset maximum | Reduce the amount or split into multiple intents |
INVALID_RECIPIENT | recipient is malformed | Validate address format |
MIN_OUTPUT_INVALID | minAmountOut is zero, negative, or exceeds amountIn notional | Set a sensible slippage floor |
METADATA_TOO_LARGE | metadata exceeds the size limit | Trim metadata |
Liquidity errors
Returned byintent.submit() and surfaced in failed status events.
| Code | Meaning | What to do |
|---|---|---|
NO_SOLVER_AVAILABLE | No solver took the intent before deadline | Retry with longer deadline or wider minAmountOut |
MIN_OUTPUT_UNATTAINABLE | Solvers can’t deliver minAmountOut at current rates | Lower minAmountOut (accept more slippage) |
Rate limiting
| Code | Meaning | What to do |
|---|---|---|
RATE_LIMITED (HTTP 429) | Platform intent throughput ceiling hit | Back off exponentially with jitter; see rate limits |
WEBHOOK_SIGNATURE_INVALID | HMAC verification failed on a webhook delivery (when webhooks ship) | Check your secret; reject the request |
400 and a specific message.
Network errors
| Code | Meaning | What to do |
|---|---|---|
RPC_UNREACHABLE | Source-chain RPC failed during validation | Retry with backoff |
TACHYON_API_UNREACHABLE | The relayer at https://relayer.tachyon.pe is not responding | Retry with backoff; real-time status is surfaced in the user dashboard at testnet.app.tachyon.pe |
REQUEST_TIMEOUT | Request exceeded the SDK’s internal timeout | Retry; consider raising requestTimeoutMs in SDK options |
Settlement errors
Surfaced infailed status events. None of these result in lost funds, the user is automatically refunded via the on-chain escape mechanism.
| Code | Meaning |
|---|---|
SETTLEMENT_REVERTED | Destination tx reverted; refund initiated |
EXECUTION_TIMEOUT | Solver did not complete settlement within the protocol’s execution window; refund initiated |
INTENT_EXPIRED | Deadline passed before any solver took the intent; refund initiated |
Recipient / sweep errors
| Code | Meaning | What to do |
|---|---|---|
VIEWING_KEY_MISSING | No viewing key loaded in the SDK session | Register the recipient via POST /recipient/register and import the viewing key |
SAFE_NOT_DEPLOYED | The Safe at the stealth address hasn’t been deployed yet | Deploy via POST /recipient/deploy-safe first |
RELAY_PROXY_REVERTED | The Safe’s execTransaction reverted on-chain | Inspect the target call; funds remain safe at the stealth Safe |
Handling pattern
Rate limits
Platform throughput limits.