Gyvar docs

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.

POST
/transfers

Authorization

KeyID Timestamp Nonce Signature
X-Gyvar-Key<token>

Your key id, gyv_k_live_... or gyv_k_sandbox_....

In: header

X-Gyvar-Timestamp<token>

Unix seconds. Must be within 5 minutes of our clock.

In: header

X-Gyvar-Nonce<token>

A unique value per request. Replays are rejected.

In: header

X-Gyvar-Signature<token>

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.

asset*string
chain*Chain

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"
amount_minor*integer
address*string
memo?string

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"  }}