# Create Transfer (beta) **POST /v1/transfers/create** Create transfer to withdraw from wallet. ## HTTP Request `POST /v1/transfers/create` ## Returns A successful response returns an unconfirmed `Transfer` object with `source_amount`, `dest_amount` (the total the recipient will get), and `total_fees` (estimated maximum blockchain network fees charged by the blockchain for performing the transfer). ## Servers - Production: https://api.moonkey.fun (Production) ## Authentication methods - Authorization ## Parameters ### Body: application/json (object) - **dest_currency** (string) Token currency to send to the destination from the specified wallet. We will first check to make sure the wallet contains the amount you intend to send. However, since these are actual wallets, there could be a delay from the blockchain network that claims the balance is higher if multiple requests are being sent in a short window. This could result in the system thinking that it has enough balance but when the user confirms it, it will fail due to insufficient balance. Same issues can apply if a deposit is made to the wallet recently and not reflected in the blockchain yet. Possible values: bitcoin, ethereum, solana, AVAX, MATIC, DOT, XLM (more coming soon). * Wallet type `ethereum` is compatible with the following currencies: ethereum, MATIC, AVAX. * Wallet type `solana` is compatible with the following currencies: solana. * Wallet type `bitcoin` is compatible with the following currencies: bitcoin. * Wallet type `DOT` is compatible with the following currencies: DOT. * Wallet type `XLM` is compatible with the following currencies: XLM. - **source** (string) Unique wallet ID of the wallet to retrieve balance for. - **dest** (string) Any wallet address of the same wallet type as the source. For example, wallet_type of `ethereum` will only be compatible with a dest that is an ethereum address. Blockchain specific transfer behaviors: * XLM (Stellar) Different from other protocol/chains, when transferring from MoonKey wallet to an external address, user is required to include a memo attached to the end of the address separated by `:`. For example: `GDQP2KPQGKIHYJGXNUIYOMHARUARCA7DJT5FO2FFOOKY3B2WSQHG4W37:3652667947` where the destination address is `GDQP2KPQGKIHYJGXNUIYOMHARUARCA7DJT5FO2FFOOKY3B2WSQHG4W37` and stellar memo is `3652667947`. - **source_amount** (string) `decimal in string` The total amount to transfer to the destination. If `amount_includes_fees` is set to true, we will auto calculate the fees to ensure the maximum amount withdrawn from the source is same as the specified amount. However, if `amount_includes_fees` is set to false, we will calculate the fees and auto increment the source_amount that gets returned in the response. We recommend that you show both the returned source_amount, dest_amount (how much recipient will receive), and also the total_fees to your user. Source amount stored with a transfer object will always be an all inclusive amount containing any fees calculated by the platform. - **notes** (string) Optional notes you want to store with this transaction. - **amount_includes_fees** (boolean) Determines of the source_amount includes fees. If set to false, we will increment the source_amount automatically. - **user_id** (string) Optional user ID to send in with the transfer, which will trigger a platform validation to ensure the source wallet is owned by the specified user to avoid usage error. ## Responses ### 200 #### Body: application/json (object) - **id** (string) - **app_id** (string) - **user_id** (string) - **status** (string) - **source** (string) - **source_amount** (string) - **dest** (string) - **dest_amount** (string) - **dest_currency** (string) - **source_currency** (string) - **custom_id** () - **total_fees** (string) - **notes** (string) - **blockchain_tx_hash** (string) - **completed_at** (integer) - **cancelled_at** (integer) - **expires_at** (integer) - **created_at** (integer) - **updated_at** (integer) [Powered by Bump.sh](https://bump.sh)