Stablecoin to Stablecoin (Wallet Transfer)
Understanding a Wallet TransferCopied!
UnblockPay’s API enables blockchain-native transfers of stablecoins on the same network (e.g., USDC to USDC on Solana, or USDT to USDT on Polygon). These transfers can occur between wallets managed by UnblockPay or from a UnblockPay-managed wallet to an external blockchain wallet.
This process is useful for partners looking to automate stablecoin payouts, rebalance treasury positions, or facilitate crypto-native disbursements without touching fiat rails.
To initiate a stablecoin to stablecoin (wallet transfer) transaction, first you need to create a Customer and a Wallet. The wallet must have sufficient balance to complete the transaction.
All stablecoin-to-stablecoin transactions must occur within the same blockchain network. Cross-chain swaps are not supported at this time.
Wallet Transfer: API endpointsCopied!
Here are the endpoints you'll need to create or list a wallet transfer:
-
POST /wallet-transfer
: Initiate stablecoin to stablecoin transaction -
GET /transactions/{id}
: View details of a specific transaction
Note: This type of transaction does not require a call to the quote endpoint, and cannot be cancelled once created.
How to create a Wallet Transfer?Copied!
POST /wallet-transfer
This endpoint initiates a wallet transfer by moving stablecoins from one blockchain wallet to another on the same network. You’ll need to specify the customer_id
, the sender wallet_id
, the receiver wallet_id
or wallet address
, and the amount
to be transferred. No quote is required for this type of transaction, and once created, the transaction cannot be cancelled.
Wallet transfers can be used to send stablecoins between wallets managed by UnblockPay or from a UnblockPay-managed wallet to an external wallet. All transfers must occur within the same blockchain network.
Example request for initiating a stablecoin transfer from an UnblockPay wallet to an external wallet address.
{
"amount": 10,
"customer_id": "{{customer_id}}",
"sender": {
"currency": "USDC",
"payment_rail": "solana",
"wallet_id": "{{wallet_id}}"
},
"receiver": {
"currency": "USDC",
"payment_rail": "solana",
"address": "0196efed-3bfa-71ea-ae05-d9a4b33e361a"
}
}
Below is an example request for transferring stablecoins between two wallets managed by UnblockPay.
{
"amount": 10,
"customer_id": "{{customer_id}}",
"sender": {
"currency": "USDC",
"payment_rail": "solana",
"wallet_id": "{{wallet_id}}"
},
"receiver": {
"currency": "USDC",
"payment_rail": "solana",
"wallet_id": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
}
Here is a response example:
{
"id": "0197e6bd-b74b-72ee-94d8-58291cc30987",
"status": "processing",
"type": "wallet_transfer",
"partner_id": "b30578dc-20a4-4332-9eac-4643dc4ebbf0",
"customer_id": "0196efed-3bfa-71ea-ae05-d9a4b33e361a",
"sender": {
"amount": 10,
"currency": "USDC",
"payment_rail": "solana",
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"wallet_id": "0197e6b8-9ffd-75c5-a782-52875b8acb7f",
"transaction_hash": null
},
"receiver": {
"amount": 10,
"currency": "USDC",
"payment_rail": "solana",
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
},
"receipt": {
"initial_crypto_amount": 10,
"final_crypto_amount": 10,
"unblockpay_fee": 0,
"flat_fee": 0
},
"created_at": "2025-07-07T21:14:42.379Z",
"updated_at": "2025-07-07T21:14:42.379Z",
"finished_at": null
}
Note: All transactions of this type are created with the status processing
, indicating that the transfer is being validated and broadcasted to the blockchain. Once confirmed on-chain, the status will be updated accordingly.