Relay Transaction Sync
Submit a transaction and wait for a terminal status or timeout across multiple blockchain networks
Submit Relay Transaction Sync
Submit a transaction to the Tachyon relay network and keep the request open until the transaction reaches a terminal state or the sync timeout expires. This endpoint is useful when you want submission and the latest known transaction status in a single API call.
Endpoint
POST https://tachyon.rath.fi/api/submit-tx-syncRequest Body
| Parameter | Type | Required | Description |
|---|---|---|---|
tx | object | Yes | Transaction payload. Uses the same transaction fields as /api/submit-tx. |
timeoutMs | number | No | Maximum time to wait before returning. Defaults to 30000. Minimum 1000, maximum 120000. |
includeReceipt | boolean | No | Include the transaction receipt when available. Defaults to false. |
includeRevertInfo | boolean | No | Include decoded revert information for failed transactions when available. Defaults to false. |
tx Object
| Parameter | Type | Required | Description |
|---|---|---|---|
chainId | number | Yes | The blockchain network ID where the transaction will be executed |
to | string | Yes | The recipient wallet address or smart contract address. Format varies by chain (hex for EVM, base58 for Solana, named for NEAR) |
callData | string | Yes | Encoded transaction data in hexadecimal format (use '0x' for simple transfers) |
value | string | No | Amount of native currency to send in the smallest unit (wei for EVM, lamports for Solana, yoctoNEAR for NEAR, MIST for Sui). Defaults to '0' |
label | string | No | Optional human-readable label for easier transaction identification and tracking |
gasLimit | string | No | Optional gas limit for the transaction. If not specified, it will be estimated automatically. Required for Aptos and Sui transactions |
gasPrice | string | No | Gas price in wei (for legacy transactions). Cannot be used with maxFeePerGas or maxPriorityFeePerGas |
maxFeePerGas | string | No | Maximum fee per gas for EIP-1559 transactions. Must be used together with maxPriorityFeePerGas |
maxPriorityFeePerGas | string | No | Maximum priority fee per gas for EIP-1559 transactions. Must be used together with maxFeePerGas |
maxUSD | number | No | Maximum cost in USD that you're willing to pay for this transaction |
shouldBatchInMulticall | boolean | No | Whether to batch this transaction in a multicall |
retries | number | No | Number of retries if transaction fails. Defaults to 0 |
isAuthenticatedTx | boolean | No | Enable authenticated relay mode for additional security and verification. Defaults to false |
derivationPath | string | No | Optional HD wallet derivation path for transaction signing (useful for multi-account setups) |
transactionType | string | No | Type of relay transaction: "flash" (default), "authenticated", "funding-signed", or "flash-blocks" (Base/Base Sepolia only) |
authorizationList | array | No | Optional list of authorization entries for delegated transactions or batched operations (EIP-7702). Not allowed for flash-blocks transactions |
AuthorizationListItem Object
When using authorizationList, each item should contain:
| Field | Type | Required | Description |
|---|---|---|---|
chainId | number | Yes | Chain ID for the authorization |
address | string | Yes | Ethereum address (must start with "0x") |
nonce | number | Yes | Nonce for the authorization |
r | string | Yes | Signature r component (must start with "0x") |
s | string | Yes | Signature s component (must start with "0x") |
yParity | number | Yes | Signature y parity (0 or 1) |
v | number/bigint | No | Optional signature v value |
Gas Parameter Rules
- Legacy transactions: Use
gasPriceonly - EIP-1559 transactions: Use both
maxFeePerGasandmaxPriorityFeePerGastogether - You cannot mix
gasPricewithmaxFeePerGasormaxPriorityFeePerGas
Response
If the transaction reaches a terminal state within the timeout, the API returns 200 OK. If the timeout expires first, the API returns the latest known status with 202 Accepted and timedOut: true.
Success Response (200 OK)
{
"success": true,
"data": {
"id": "68fa3450539a3c9d28bbca33",
"userId": "68c275846a6ba1c9a2198a8c",
"to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
"callData": "0x",
"value": "1",
"chainId": 8453,
"gasPrice": null,
"maxFeePerGas": null,
"maxPriorityFeePerGas": null,
"gasLimit": "21000",
"label": "My Base Transaction",
"status": "EXECUTED",
"executionTxHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
"timestamp": "2025-10-24T12:34:56.789Z",
"latency": 2500,
"costUSD": 0.8400561743999754,
"retries": 0,
"isAccountCharged": true,
"extraData": null,
"transactionType": "flash"
},
"timestamp": "2025-10-24T12:34:59.500Z"
}Timed Out Response (202 Accepted)
{
"success": true,
"data": {
"id": "68fa3450539a3c9d28bbca33",
"userId": "68c275846a6ba1c9a2198a8c",
"to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
"callData": "0x",
"value": "1",
"chainId": 8453,
"gasPrice": null,
"maxFeePerGas": null,
"maxPriorityFeePerGas": null,
"gasLimit": "21000",
"label": "My Base Transaction",
"status": "PENDING",
"executionTxHash": null,
"timestamp": "2025-10-24T12:34:56.789Z",
"latency": null,
"costUSD": 0.8400561743999754,
"retries": 0,
"isAccountCharged": false,
"extraData": null,
"transactionType": "flash",
"timedOut": true
},
"timestamp": "2025-10-24T12:35:26.789Z"
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique transaction identifier |
userId | string | User ID associated with the transaction |
to | string | Recipient address |
callData | string | Encoded transaction data in hexadecimal format |
value | string | Amount transferred in the smallest unit for the target chain |
chainId | number | Blockchain network ID where the transaction was submitted |
gasPrice | string | null | Gas price used for the transaction |
maxFeePerGas | string | null | Maximum fee per gas unit for EIP-1559 transactions |
maxPriorityFeePerGas | string | null | Maximum priority fee per gas for EIP-1559 transactions |
gasLimit | string | null | Gas limit for the transaction |
label | string | Human-readable transaction label |
status | string | Current transaction status (see status values below) |
executionTxHash | string | null | On-chain transaction hash (null until available) |
timestamp | string | ISO 8601 timestamp of transaction submission |
latency | number | null | Time taken for execution in milliseconds |
costUSD | number | Transaction cost in USD |
retries | number | Number of retry attempts made |
isAccountCharged | boolean | Whether the account has been charged for the transaction |
extraData | any | Additional transaction metadata |
transactionType | string | Relay transaction type used for execution |
error | string | null | Error message if the transaction failed |
timedOut | boolean | Present when the sync wait window expires before a terminal state is reached |
receipt | object | Present when includeReceipt is true and a receipt is available |
revert | object | Present when includeRevertInfo is true and revert data is available |
Transaction Status Values
| Status | Description |
|---|---|
NOT_PICKED_UP | Transaction submitted but not yet picked up by relayer |
PICKED_UP | Transaction picked up by relayer, awaiting execution |
PENDING | Transaction is being processed |
NEEDS_TO_BE_RETRIED | Transaction execution failed and will be retried |
EXECUTED | Transaction successfully executed on-chain |
FAILED | Transaction execution failed permanently |
Error Response
{
"success": false,
"error": {
"code": "INVALID_PARAMETERS",
"message": "Missing required transaction parameters",
"category": "VALIDATION_ERROR",
"details": {
"field": "chainId",
"message": "chainId is required"
},
"traceId": "trace_abc123xyz789"
},
"timestamp": "2025-10-24T12:34:56.789Z"
}Example Requests
EVM Chains (Ethereum, Base, Polygon, etc.)
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 8453,
"to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
"value": "1000000000000000",
"callData": "0x",
"label": "My Base Transaction"
},
"timeoutMs": 30000
}'Aptos
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 88888888,
"to": "0x09ebf332aa3e4edad203aff521bd8a47597119de1956885711223ec157eac219",
"value": "1",
"callData": "0x",
"gasLimit": "100",
"label": "My Aptos Transaction"
},
"timeoutMs": 30000
}'Note: Gas limit is required for Aptos transactions.
Solana
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 10100000,
"to": "BSNsLtDDM1wN8rjEJQaZreVqRhibsUtsEq9m1G2deAm",
"value": "1000000",
"callData": "0x",
"label": "My Solana Transaction"
},
"timeoutMs": 30000
}'Sui
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 897796746,
"to": "0xf78da4499004aa2d594143d69a7804f6f989ab8152de59d3726def827c9fe1f0",
"value": "100000000",
"callData": "0x",
"gasLimit": "3000000",
"label": "send-native-sui"
},
"timeoutMs": 30000
}'Note: Gas limit is required for Sui transactions. Value is denominated in MIST (1 SUI = 10^9 MIST).
NEAR
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 7777777,
"to": "deeprice6887.near",
"value": "1000000000000000000000000",
"callData": "0x",
"label": "My NEAR Transaction"
},
"timeoutMs": 30000
}'Starknet
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"to": "0x021Af6FEc4753c4C7C248Dc68d1B43ed721f0246e9dC8A9e5b7d74Ff3373764B",
"callData": "0x",
"value": "1",
"chainId": 23448594291968334,
"label": "send strk",
"retries": 0
},
"timeoutMs": 30000
}'Advanced Examples
Include Receipt
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 8453,
"to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
"value": "1000000000000000",
"callData": "0x",
"label": "Receipt Example"
},
"timeoutMs": 45000,
"includeReceipt": true
}'Include Revert Information
curl -X POST "https://tachyon.rath.fi/api/submit-tx-sync" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"tx": {
"chainId": 8453,
"to": "0x3dbE34f2C21b3B2980d4dc53f3c7E51e39663F49",
"value": "0",
"callData": "0xdeadbeef",
"label": "Failed Transaction Example"
},
"timeoutMs": 45000,
"includeRevertInfo": true
}'Continue Tracking After Timeout
If the response includes timedOut: true, continue checking the transaction with the standard relay status endpoint using the returned id:
curl "https://tachyon.rath.fi/api/tx?id=68fa3450539a3c9d28bbca33" \
-H "api-key: YOUR_API_KEY"