Deposit addresses
Deposit addresses allow you to generate unique addresses that automatically bridge assets to a specified destination upon receiving a transfer.
The deposit address feature is not available on mainnet yet.
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 access.
Introduction
To bridge funds through Rhino you would normally need to generate a quote, commit it and then interact with the bridge contract on the origin chain to initiate the bridge. However, this is not always an option for all use cases where a smart contract interaction is not possible or very inconvenient.
To also cater to those use casas, Rhino supporting bridging through manual transfers.
How it works
Generate address
Call our API with deposit chain, destination chain and destination address.
Transfer funds
Make a standard ERC20 transfer to the generated address.
Receive funds
After the deposit has been confirmed on chain, the funds will be automatically bridged to the specified destination.
Deposit addresses are reusable and can be used for multiple bridges indefinetely (see cavehats below).
This makes bridging accessible to any wallet or app that supports standard ERC20 transfers.
Deposit address expiration
To conserve resources when monitoring deposit addresses, we will stop monitoring addresses that have not been used for a certain period of time. This is basically a timer that runs down from initial creation and is reset whenever a bridge is performed through an address.
An inactive deposit address can still be used for bridging by manually reactivating it through the API if it is needed. Funds that are sent to an inactive deposit address are not lost, they will only require one API call to activate the address and initate a bridge for the transfers made while inactive.
Supported chains
The general bridge config endpoint provides a boolean enabledDepositAddress
flag that can be used to find chains that deposit addresses are enabled for. Example:
The response will then specify which chains have deposit addresses enabled:
API interactions
The following examples showcase the use of our API to manage deposit addresses. All those calls require authentication, see details on this here.
Generating a deposit address
You can generate new deposit addresses with the following API call:
The response will then look like this:
The first highlighted line contains the generated deposit address. Funds can be sent there to be bridged.
However, only tokens from the supportedTokens
list will be processed. Transfers of tokens that are not in this list will not be processed. If this happens, funds can be returned through our customer service.
Multiple deposit chains
You can provide multiple deposit chains in the request. The API will then generate one deposit address that can be used on all the provided chains. This is why the response is also a list - one element for each chain provided. The deposit addresses in the individial elements will be identical in this case.
Please note that providing multiple deposit chains only works for EVM chains currently. Only then can the same address be used for all of them.
Checking deposit address status
You can also check the current status of a deposit address with the following call:
The response format will be the same as the one returned when generating a new deposit address with the exception of the destinationAddress
. That field will only be included if the request was made with a secret API key.
Reactivating a deposit address
If the isActive
flag returned by the status check is false
you can reactivate the dposit address manually with the following call:
This will cause the address to be monitored again. Additionally the address will be checked for transfers since the last activity to process transfers made while the address was inactive.