Get a transfer
Returns the current state of one transfer. orderId is the id you saved when you executed the quote.
Stop polling when status.isTerminal is true; see that field for the guarantees it does and does not give you. The endpoint takes no query parameters -- any is rejected with 400 request.unsupported_param.
Authorization
bearerAuth API key for authentication.
In: header
Path Parameters
The transfer's id -- the same value as the quote's orderId.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/transfers/0xe3d6f2babb58d4e583a1ec616cc695d51e77ce01184a67b8fe479df08afcb5d2"{
"orderId": "0xe3d6f2babb58d4e583a1ec616cc695d51e77ce01184a67b8fe479df08afcb5d2",
"status": {
"state": "completed",
"reason": "filled_destination_action_successful",
"description": "The transfer is complete, the funds were delivered to the recipient, and the requested destination actions completed.",
"isTerminal": true,
"finalized": true
},
"origin": {
"chain": {
"chainId": 42161,
"name": "arbitrum-one",
"displayName": "Arbitrum One",
"logoUrl": "https://alexandria-blond.vercel.app/assets/chains/arbitrum.svg"
},
"input": {
"token": {
"kind": "token",
"address": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"chainId": 42161,
"logoUrl": "https://alexandria-blond.vercel.app/assets/tokens/usdc.svg",
"priceUsd": 0.9996656809977668,
"priceUsdAt": "2026-10-15T12:45:00.000Z"
},
"amount": "3000000",
"amountUsd": "2.998997042993300400"
},
"depositor": {
"address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
"chainId": 42161
}
},
"destination": {
"chain": {
"chainId": 137,
"name": "polygon",
"displayName": "Polygon",
"logoUrl": "https://alexandria-blond.vercel.app/assets/chains/polygon.svg"
},
"output": {
"token": {
"kind": "token",
"address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"symbol": "USDC.e",
"name": "USD Coin (bridged)",
"decimals": 6,
"chainId": 137,
"logoUrl": "https://alexandria-blond.vercel.app/assets/tokens/usdc.svg",
"priceUsd": 0.9996727054482215,
"priceUsdAt": "2026-10-15T12:45:00.000Z"
},
"amount": "2963015",
"amountUsd": "2.962045221333662028"
},
"recipient": {
"address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
"chainId": 137
}
},
"submittedAt": "2026-10-15T12:45:50.743Z",
"filledAt": "2026-10-15T12:46:01.000Z",
"fillTimeMs": 10257,
"fundingMethod": "approval",
"transactions": [
{
"type": "deposit",
"transaction": {
"txnRef": "0x17207bfaa5358b3e0109e9fc4a8c39c0cf1ab97e0175852fc2c7f7a5bed6a77d",
"chainId": 42161,
"blockRef": 515062780,
"blockTimestamp": null,
"explorerUrl": "https://arbiscan.io/tx/0x17207bfaa5358b3e0109e9fc4a8c39c0cf1ab97e0175852fc2c7f7a5bed6a77d"
}
},
{
"type": "fill",
"transaction": {
"txnRef": "0xdc1fd195d7947ef11c81c61f2dc17de88b50e7c2341c740ea4767e04c885dde1",
"chainId": 137,
"blockRef": 95575357,
"blockTimestamp": "2026-10-15T12:46:01.000Z",
"explorerUrl": "https://polygonscan.com/tx/0xdc1fd195d7947ef11c81c61f2dc17de88b50e7c2341c740ea4767e04c885dde1"
}
}
],
"quoted": {
"amountType": "exact_input",
"origin": {
"input": {
"token": {
"kind": "token",
"chainId": 42161,
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"symbol": "USDC",
"decimals": 6
},
"amount": "3000000",
"maxAmount": "3000000"
},
"depositor": {
"address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
"chainId": 42161
}
},
"destination": {
"output": {
"token": {
"kind": "token",
"chainId": 137,
"address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"symbol": "USDC.e",
"decimals": 6
},
"amount": "2946651",
"minAmount": "2858923"
},
"recipient": {
"address": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D",
"chainId": 137
}
},
"expectedFillTimeMs": 1000
}
}{
"error": {
"type": "not_found",
"code": "not_found.transfer",
"message": "No transfer found for order: 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"requestId": "e27f327f-775f-43cf-ad8a-0a1e742bfff1"
}
}{
"error": {
"type": "request",
"code": "string",
"message": "string",
"param": "string",
"requestId": "string",
"details": {}
}
}List transfers GET
Lists your transfers, newest first. Filters are repeatable and combine — values within one filter match any, separate filters must all match — and for reconciliation `externalId` matches your own id while `txnRef` matches any transaction in the transfer's lifecycle. The query is strict: an unknown parameter is rejected with `400 request.unsupported_param`, and an empty filter value is a `400`.
Create persistent deposit addresses POST
Returns a persistent, infinite-TTL deposit address. The same request parameters always resolve to the same address, so you can request it once and reuse it. Requires an API key with the `deposit-address` permission (Bearer auth). The supported destination is currently only `USDC-SPOT` on HyperCore, delivered to an EVM recipient address. Additionally, `USDC` is also supported on HyperEVM - chainId `999`, `0xb88339CB7199b77E23DB6E890353E22632Ba630f`. More destination tokens and chains will be supported in the future. You don't need to hardcode which chains you can deposit from (input chains), the API response will include that information in the `supportedInputs` field including the input token to send there, and that route's min/max limits. **Strongly provide `refundAddresses`.** It is optional, but if a deposit can't be completed and no refund address was supplied, funds can only be recovered through a **manual refund process that takes significantly longer** than the automatic refund. You would need to contact Across support to initiate the manual refund.