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

Private Send

Prepare a private send order

post

Prepares an order that deposits the caller's public funds and privately pays one or more recipients. Returns a serialized unsigned deposit transaction; once the caller broadcasts it, the enclave detects the on-chain deposit and schedules the private withdrawals. Track progress with GET /private-send/{orderId}.

Works for EVM, Tron, and Solana. On Solana, approvalAddress is always null.

Authorized by a normal mode session (secp256k1 request signature via x-hinkal-request-signature header, bound to "POST /private-send") or an EIP-712 mode session with a per-transaction EIP-712 typed-data signature (primary type PrivateSend) on EVM/Tron, or an ed25519 plain-text signature on Solana.

Normal mode: include x-hinkal-request-signature header; omit signature. EIP-712 mode: include signature in body; omit x-hinkal-request-signature header.

Header parameters
x-hinkal-request-signaturestringOptional

Required for normal mode sessions: hex-encoded compact secp256k1 signature secp256k1_sign(SHA256(binding + "\n" + JSON.stringify(body))), where binding is "POST <routePath>" for this endpoint. Omit for EIP-712 mode sessions — include signature in the request body instead. See Authentication for the full signing scheme.

Body
sessionIdstring · uuidRequired

Session identifier UUID from POST /create-session

noncestring · uuidRequired

Per-request UUID. Echoed back in the response.

chainIdintegerRequired
tokenAddressstringRequired
feeTokenstringOptional
txCompletionTimeintegerOptional

Optional Unix timestamp (seconds) by which all withdrawals must complete

refstringOptional

Referral code for attribution (must be a whitelisted referral identifier)

signaturestringOptional

EIP-712 or ed25519 signature (EIP-712 mode only; omit for normal mode)

Responses
200

Order prepared

application/json
post/private-send
POST /private-send HTTP/1.1
Host: api.hinkal.io
Content-Type: application/json
Accept: */*
Content-Length: 423

{
  "sessionId": "ffd74231-0672-48c7-bd82-9f72a803578b",
  "nonce": "421b3d4f-302e-435c-b7fb-4c5656677ff2",
  "chainId": 10,
  "tokenAddress": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
  "recipients": [
    {
      "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "amount": "200000"
    },
    {
      "address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
      "amount": "100000"
    }
  ],
  "feeToken": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
  "txCompletionTime": 1750089600
}
{
  "success": true,
  "orderId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "approvalAddress": "0x8242dC4a85e1B5Ca5C54F1B37e1b4Ba649e19AB5",
  "serializedTx": "02f8af0a8085012a05f2008503a35294008303345094742d35cc6634c0532925a3b844bc454e4438f44e80b844a9059cbb000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000004a38c0808080",
  "amountIn": "305000",
  "amountOut": "300000",
  "fee": "5000",
  "nonce": "421b3d4f-302e-435c-b7fb-4c5656677ff2"
}

Last updated