For the complete documentation index, see llms.txt. This page is also available as Markdown.

Create persistent deposit address

post

Returns a chain-specific deposit address that funnels deposits into the recipient's account. The same address is returned for repeat calls with the same API key + recipient + sender + depositChain + destinationChain/destinationAsset, so users can safely save it externally. A different API key (or destinationAsset/destinationChain) yields a different deposit address and a separate underlying Intents account.

EVM chains share one address. Across different EVM chains you only need to generate the deposit address once using any EVM chain as depositChain. The returned address works automatically for deposits on every other supported EVM chain — no need to call this endpoint again per EVM chain.

Path parameters
apiKeystringRequired

API key generated at https://studio.aurora.dev

Body

To specify the asset the user receives, you can either:

  • Pass a token symbol in destinationAsset (e.g. "USDC") together with destinationChain (e.g. "base"). The API resolves the symbol to an asset ID on that chain.
  • Or pass an asset ID directly in destinationAsset (e.g. "nep141:base-0x...omft.near"). destinationChain is still required to locate it.

When a symbol matches more than one token on the same destinationChain, the request fails with 400 and an error listing the matching asset IDs ("Multiple tokens with symbol ... Use one of the asset IDs instead: ..."). In that case, retry with the specific asset ID you want.

recipientstring · min: 1Required

Target address on the destination chain. Funds deposited to the returned address will ultimately route to this address.

Example: 0x2527D02599Ba641c19FEa793cD0F167589a0f10D
senderstring · min: 1Required

Identifier of the user the deposit address is generated for (e.g. their ID in the system). A unique deposit address is generated and persisted per (sender, recipient, depositChain), so incoming deposits can be attributed to a specific user. A single underlying Intents account is shared per (sender, recipient) across all chains; only the deposit address is chain-specific.

Example: some-user-id
depositChainstring · enumRequired

Chain the user deposits FROM (the chain of the returned deposit address). Short code matching the widget config Chains enum, e.g. "arb" for Arbitrum. The special value "evm" is accepted as a shortcut for any EVM chain — all EVM chains share one deposit address — and resolves to Base ("base"). For "stellar", the response includes a memo that deposits must carry.

Example: arbPossible values:
destinationChainstring · enumRequired

Chain the user receives funds ON. Used to resolve destinationAsset when it is provided as a symbol. Short code matching the widget config Chains enum, e.g. "base" for Base.

Example: basePossible values:
destinationAssetstring · min: 1Required

Asset the user wants to receive on destinationChain. Accepts either a token symbol (e.g. "USDC") or an asset ID (e.g. "nep141:base-0x...omft.near"). When a symbol is used and more than one token shares that symbol on destinationChain, the request is rejected with 400 and the caller must switch to the asset ID.

Example: USDC
Responses
200

Persistent deposit address generated or fetched from cache

application/json

Persistent deposit address generated or fetched from cache

depositAddressstringRequired

Chain-specific deposit address. Sending any supported asset on this chain to this address will deposit funds into the NEAR Intents account associated with recipient.

Example: 0x76b4c56085ED136a8744D52bE956396624a730E8
alreadyExistsbooleanRequired

True when this exact deposit address already existed and was already user-requested (requested = true) before this call — i.e. the call was a cache hit on a previously generated address rather than a new generation.

Example: false
memostringOptional

Deposit memo required by some chains (currently only Stellar). Deposits to depositAddress on such chains MUST include this memo or the funds are not credited. Omitted for chains that do not use a memo.

Example: 66357
post/api/persistent-deposit-address/{apiKey}

Last updated