Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.handcash.io/llms.txt

Use this file to discover all available pages before exploring further.

Wallet endpoints live under /v1/waas/wallet/*. Every call must be signed with the user’s access private key, plus app-id and app-secret.

Get deposit info

GET /v1/waas/wallet/depositInfo
Signed GET with empty body. Response includes paymail, alias, and deposit address fields (see OpenAPI wallet-depositInfoSchema).

Get wallet balance

GET /v1/waas/wallet/balances
Signed GET. Returns spendable balances (BSV, MNEE, fiat equivalents per OpenAPI).

Make a payment

POST /v1/waas/wallet/pay
Signed POST. Request body matches Connect-style payments (instrumentCurrencyCode, receivers, description, etc.) — see Wallet APIPOST /v1/waas/wallet/pay in cloud.handcash.io/sdk-docs.
const body = JSON.stringify({
  instrumentCurrencyCode: 'BSV',
  denominationCurrencyCode: 'USD',
  description: 'Order #1234',
  receivers: [{ destination: 'merchant_handle', sendAmount: 1.0 }],
});
const pathname = '/v1/waas/wallet/pay';

await fetch(`https://cloud.handcash.io${pathname}`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'app-id': process.env.HANDCASH_APP_ID,
    'app-secret': process.env.HANDCASH_APP_SECRET,
    ...signWaasRequest({
      method: 'POST',
      pathname,
      body,
      accessPrivateKeyHex: process.env.USER_ACCESS_PRIVATE_KEY,
    }),
  },
  body,
});

Transaction history

GET /v1/waas/wallet/transactions
GET /v1/waas/wallet/transaction
Signed GET calls. Query parameters and filters are defined in the OpenAPI spec.

Self-custody variant

If you registered a wallet with POST /v1/waas/account/selfCustodial, use /v1/waas/wallet/selfCustody/* with the wallet-xpub header instead of OAuth signing. See the OpenAPI Wallet API tag for those paths.