The Smart Deposit Addresses feature is currently in beta.
Please contact us with the details of your use case if you are interested in using it and we can set you up with testnet and mainnet access.
Please read about the general concepts of Smart Deposit Addresses before continuing here.

Using the SDK wrappers

The SDK provides wrappers around the API calls to manage Smart Deposit Addresses. Those wrappers are available under sdk.depositAddresses.

Examples

Find supported chains
const depositAddresses = await sdk.depositAddresses.getSupportedChains()
// Result:
['ETHEREUM', ...]
Set up a new Smart Deposit Address
const depositAddresses = await sdk.depositAddresses.create({
  depositChain: 'ETHEREUM',
  destinationChain: 'BASE',
  destinationAddress: '0x123...',
})
// Result:
{
  depositAddress: '0x457...',
  depositChain: 'ETHEREUM',
  destinationChain: 'BASE',
  destinationAddress: '0x123...',
  supportedTokens: [{symbol: 'USDT', address: '0x789...'}],
  isActive: true,
}
Check the status of a Smart Deposit Address
// Same result as the create function above
const status = await sdk.depositAddresses.getStatus({
  depositAddress: '0x123...',
  depositChain: 'ETHEREUM',
})
Activate an existing Smart Deposit Address
await sdk.depositAddresses.activate({
  depositAddress: '0x123...',
  depositChain: 'ETHEREUM',
})