Persistent Deposit Addresses
One POST returns a permanent deposit address — send USDC from any supported chain to reach USDC-SPOT on HyperCore.
POST /deposit-addresses returns a persistent, never-expiring deposit address that delivers USDC-SPOT to a recipient on HyperCore. The same request parameters always resolve to the same address, so you can request it once and reuse it — the amount is not part of the request. Send any amount, any time, and it's swept to the destination automatically; no wallet signing or per-transfer quote is required.
API key with the deposit-address permission required (Bearer auth). Get an API key + Integrator ID.
Supported routes
- Destination: always
USDC-SPOTon HyperCore — chainId1337,0x2000000000000000000000000000000000000000. - Recipient: an EVM address.
- Origins: you don't need to hardcode these. The response's
supportedInputs[]lists every origin chain you can deposit USDC from, the token to send on each, and that route's min/max limits — read them from there. The list stays current as new chains are added.
The response returns a single deposit instruction. Other destinations or non-EVM recipients return 400.
Integrate
Request an address
Send the destination (token + recipient) and a refundAddresses entry to refund to if a deposit can't be completed.
curl -X POST https://app.across.to/api/deposit-addresses \
-H "Authorization: Bearer $ACROSS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"destination": {
"token": { "chainId": 1337, "address": "0x2000000000000000000000000000000000000000" },
"recipient": "0x1111111111111111111111111111111111111111"
},
"refundAddresses": [
{ "namespace": "evm", "address": "0x2222222222222222222222222222222222222222" }
]
}'Read the deposit instruction
The response returns depositInstructions[]. Each has a depositAddress (an Account — { namespace, address }) and the supportedInputs (origin chain + input token + limits) it accepts. expiresAt is always null.
{
"destination": {
"token": { "chainId": 1337, "address": "0x2000…0000", "symbol": "USDC-SPOT", "decimals": 8 },
"recipient": { "namespace": "evm", "address": "0x1111…1111" }
},
"expiresAt": null,
"depositInstructions": [
{
"depositAddress": { "namespace": "evm", "address": "0xac00…0000" },
"supportedInputs": [
{
"originChainId": 1,
"inputToken": { "chainId": 1, "address": "0xA0b8…eB48", "symbol": "USDC", "decimals": 6 },
"limits": { "minInputAmount": "0", "maxInputAmount": "0" },
"indicativeFees": null
}
]
}
]
}Send funds
Send native USDC on any supported origin chain to the depositAddress. It's swept to HyperCore USDC-SPOT for the recipient. The address is amount-agnostic and permanent — reuse it for future transfers; re-POSTing the same parameters returns the same address.
See the full schema, fields, and error responses in the POST /deposit-addresses API reference.