Mesh Transfers API
### Supported integrations: ```Robinhood``` ```Coinbase``` ```Kraken``` ```CoinbasePro``` ```CryptoCom``` ```Binance``` ```Gemini``` ```OkCoin``` ```KuCoin``` ```BinanceInternational``` ```Bitstamp``` ```GateIo``` ```Okx``` ```Huobi``` ```Bitfinex``` ```KrakenDirect``` ```BinanceInternationalDirect``` ```Bybit``` ```Paxos``` ```CoinbasePrime``` ```DeFiWallet``` ### Integration-specific notes: #### Robinhood: Cryptocurrency transfers should be enabled in Robinhood settings. Transfers are disabled by default, enabling them for end users requires a review from Robinhood. Please note: * `MfaCode` parameter is required to initiate a transaction in Robinhood. * The user's security settings should be configured to use an authenticator application. * Robinhood doesn't allow initiation of transactions if the authenticator application is not configured. #### Coinbase: `MfaCode` parameter should be used to initiate transactions in Coinbase. * If the end user's Coinbase account is configured to use text messages (SMS) for two factor authentication, the API will return `MfaRequired` status, and a text code will then be sent by Coinbase. The code is expected to be provided in the subsequent call using the `MfaCode` request field * If the account is configured to use an authenticator application, the API is expecting to get the code in the `MfaCode` request field. #### Kraken: Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint. To initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used. #### CoinbasePro: * CoinbasePro does not provide multiple chains per a symbol, so default chains are used for getting Deposit addresses. #### Binance: `Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance Us. Binance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available. #### KuCoin: KuCoin requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. `Fee` parameter should be used to initiate a transaction in KuCoin. Please note: * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * All currencies have their minimum `fee` and `amount` requirements. Please use `symbol/details` endpoint to get this data for a particular symbol. * KuCoin requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one. #### BinanceInternational: `Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance International. Binance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available. #### GateIo: Gate.io requires adding IP address to the list of trusted IP addresses to be able to initiate a cryptocurrency transfers. Withdrawal address should be already verified or added on the Gate.io UI (in mobile application or on the web site). * Please reach out to Front to get the static IP address for withdrawals. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * Only verified withdrawal blockchain addresses are allowed for withdrawal with Gate.io API. * Gate.io requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one. #### Huobi: Warning: Huobi does not refund executed deposits that are below the `Minimum Deposit Amount` * Please check the MinimumDepositAmount in Get Deposit Address response in order to avoid making a deposit below the minimum amount * Huobi does not allow withdrawals to addresses that are not white-listed, please add the address that you would like to withdraw to the white list of addresses through the UI so that a withrawal can be processed #### Bitfinex: * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id. * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts. #### KrakenDirect: Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint. To initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.