Simulate Transfer
Dry-run a value-movement intent to preview fees, routing, and transaction data without executing on-chain. The request body is identical to Create Transfer.
POST /transfers/simulate
Request Body
Identical to Create Transfer.
| Field | Type | Required | Description |
|---|---|---|---|
from | CAIP-10 | Yes | Source account and chain. |
to | CAIP-10 | Yes | Destination account and chain. |
asset | CAIP-10 | { in: CAIP-10, out: CAIP-10 } | Yes | Token to move. Use { in, out } for swaps. |
amount | string | Yes | Amount as a decimal string. |
deadline | string | No | Latest execution time (ISO 8601). |
callData | string | No | Hex-encoded calldata. |
{
"from": "eip155:11155111:0x3165...",
"to": "eip155:11155111:0x8f66...",
"asset": "eip155:11155111:0xA0b8...",
"amount": "1000.50"
}Response
{
"simulationId": "sim_01HT...",
"valid": true,
"resolvedPath": ["transfer"],
"estimatedFees": {
"gasUsd": "0.12",
"protocolFeeBps": 30,
"solverFeeBps": 10,
"totalUsd": "0.15"
},
"estimatedTimeS": 12,
"warnings": [],
"errors": [],
"expiresAt": "2026-06-05T12:00:30Z",
"tx": {
"to": "0x...",
"data": "0x...",
"value": "0",
"chainId": 11155111
}
}Response Fields
| Field | Type | Description |
|---|---|---|
simulationId | string | Unique identifier for this simulation result. |
valid | boolean | Whether the intent would succeed as submitted. |
resolvedPath | string[] | Ordered list of primitive operations (e.g. ["transfer"], ["swap"], or ["bridge"]). |
estimatedFees | object | Breakdown of gas, protocol, and solver fees. |
estimatedTimeS | number | Expected settlement time in seconds. |
warnings | string[] | Non-fatal issues. |
errors | string[] | Fatal validation errors if valid is false. |
expiresAt | string | ISO 8601 timestamp after which quoted fees may no longer be accurate. |
tx | object | Optional transaction payload ready for submission. |
Errors
| HTTP | Type | When |
|---|---|---|
| 422 | ValidationError | Invalid request body or field validation failure. |
| 422 | InsufficientFundsError | Source account lacks the required balance. |
| 422 | BlockchainError | On-chain simulation failure. |
| 422 | ChainNotConfiguredError | The specified chain is not supported. |
| 422 | CAIPError | Invalid CAIP-2 chain identifier. |
| 422 | IntentIdError | Intent ID generation failure. |
| 422 | CurrencyError | Bridge provider quote failure for cross-chain requests. |