For the complete documentation index, see llms.txt. This page is also available as Markdown.

Balance

Get shielded token balances

get

Read-only — requires an active session. Pass sessionId and nonce as query parameters and include x-hinkal-request-signature: secp256k1_sign(SHA256("GET /balance\n" + queryString)) in the headers. Works for EVM, Tron, and Solana chains.

Query parameters
sessionIdstring · uuidRequired

Session identifier UUID from POST /create-session

Example: ffd74231-0672-48c7-bd82-9f72a803578b
noncestring · uuidRequired

Per-request UUID. Echoed back in the response.

Example: 14e199c7-8bb2-474f-ae26-3748a720d58b
chainIdstringRequired

Chain ID (e.g. 10 for Optimism, 501 for Solana mainnet, 728126428 for Tron mainnet)

Example: 10
Header parameters
x-hinkal-request-signaturestringRequired

Hex-encoded compact secp256k1 signature: secp256k1_sign(SHA256(binding + "\n" + payload)), where binding is "<METHOD> <routePath>" (this route's own method and path, e.g. "POST /refresh-cache" or "GET /balance") and payload is JSON.stringify(body) for POST requests or the raw query string for GET requests. Binding the route into the signed digest stops a signature captured for one endpoint from being replayed against another. See Authentication for the full signing scheme.

Responses
200

Shielded balances

application/json
get/balance
GET /balance?sessionId=ffd74231-0672-48c7-bd82-9f72a803578b&nonce=14e199c7-8bb2-474f-ae26-3748a720d58b&chainId=10 HTTP/1.1
Host: api.hinkal.io
x-hinkal-request-signature: text
Accept: */*
{
  "success": true,
  "balances": [
    {
      "chainId": 10,
      "tokenAddress": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
      "balance": "5000000"
    },
    {
      "chainId": 10,
      "tokenAddress": "0x94b008aA00579c1307b0EF2c499aD98a8ce58e58",
      "balance": "2000000"
    }
  ],
  "nonce": "14e199c7-8bb2-474f-ae26-3748a720d58b"
}

Last updated