Send on-chain
Sends BTC, USDT or USDC to an address on a chain. Lightning has its own route: it shares a rail internally and shares nothing in the shape of a destination. `amount_minor` is in MINOR units, unlike the major strings this API publishes. An outbound amount is an instruction rather than a figure to display, and a decimal here would make the rounding your guess at the moment it matters most.
Authorization
KeyID Timestamp Nonce Signature Your key id, gyv_k_live_... or gyv_k_sandbox_....
In: header
Unix seconds. Must be within 5 minutes of our clock.
In: header
A unique value per request. Replays are rejected.
In: header
Ed25519 signature over the canonical string. See the Signing guide.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
A chain that can hold a standing receive address. lightning is
deliberately absent - see the Addresses tag.
Value in
- "bitcoin"
- "tron"
- "ethereum"
- "polygon"
- "solana"
- "base"
- "bsc"
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/transfers" \ -H "Content-Type: application/json" \ -d '{ "asset": "USDC", "chain": "bitcoin", "amount_minor": 10500000, "address": "string" }'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "reference": "string", "status": "successful", "currency": "string", "decimals": 0, "amount": "string", "amount_minor": "string", "fee": "string", "fee_minor": "string", "net": "string", "net_minor": "string", "created_at": "2019-08-24T14:15:22Z" }}Pay a beneficiary in local currency
Prices and sends in ONE call. There is deliberately no quote endpoint: a quote locks a rate for five minutes, which is a courtesy to a person and a free option to a machine - poll quotes, execute the ones the market moved in your favour, let the rest lapse at no cost. Use `min_settlement_amount_minor` to bound what you accept instead. It is checked BEFORE anything is debited, so a refusal costs you nothing. `amount_minor` is what leaves your WALLET, in the asset's minor units. What the beneficiary receives depends on a rate that does not exist until we ask for it, which is why you state the side you are spending.
Pay over Lightning
Pays a bolt11 invoice or a Lightning address. Send one or the other, never both - two destinations on a money request is not something we will resolve for you. An invoice carries its own amount, so `amount_sat` is REFUSED alongside one. A Lightning address carries none, so it is required there.