Developers

Vaults

A vault is a tenant-owned wallet account that holds the funds your payouts draw from. Each vault has a stable id, a human label (for example hot), an address on every supported network, and balances you can inspect per asset.

Custody model

Stridge vaults are non-custodial. Stridge orchestrates signing but never holds raw private keys — keys are generated and guarded inside a third-party key-management system, and signatures are requested from that provider for each transaction.

Limited availability

Vaults are available in select regions only and to select clients only — they are not enabled for every account. Which provider backs your vaults depends on the regulation that applies to your tenant's region: Stridge integrates Turnkey and dfns, and the appropriate one is selected when your tenant is provisioned. If GET /v1/vault returns an empty list, your tenant isn't vault-enabled yet.

This is what lets payouts be a single API call: you authorize the transfer, and Stridge coordinates the key-management provider to sign from the vault wallet — without exporting a key into Stridge's infrastructure.

Important Notice

Stridge does not hold, custody, or safeguard funds on behalf of end users.

  • Treasury accounts are provisioned for and operated by merchants for business settlement and payout purposes.
  • Stridge may facilitate transaction signing and execution through integrated key-management infrastructure solely to process merchant-authorized payout instructions.
  • Merchants remain solely responsible for the underlying funds, recipient selection, transaction authorization policies, and compliance with applicable laws and regulations.
  • Stridge acts as a technology and orchestration provider and does not provide banking, custodial, escrow, fiduciary, or money-transmission services.

Listing vaults

GET /v1/vault
{
  "data": [
    { "id": "550e8400-e29b-41d4-a716-446655440000", "label": "hot" }
  ],
  "message": "operation completed successfully",
  "success": true
}
FieldNotes
idVault id — pass it as vault_id when creating a payout
labelHuman-readable name, e.g. hot, cold, treasury

Vault addresses

Each vault has one address per network. List them all, or fetch the address for a single network.

All addresses

GET /v1/vault/{vault_id}/addresses
{
  "data": {
    "addresses": [
      {
        "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD58",
        "network_id": "60",
        "network_symbol": "ETH",
        "created_at": "2024-01-01T00:00:00Z"
      }
    ]
  },
  "message": "operation completed successfully",
  "success": true
}

Address by network

GET /v1/vault/{vault_id}/addresses/{network}

The network path parameter is the network name — for example ethereum or tron.

{
  "data": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD58",
    "network_id": "60",
    "network_symbol": "ETH",
    "created_at": "2024-01-01T00:00:00Z"
  },
  "message": "operation completed successfully",
  "success": true
}
FieldNotes
addressThe vault's wallet address on this network
network_idStridge internal network id
network_symbolNetwork symbol, e.g. ETH, TRX
created_atWhen the address was provisioned

Balances

Inspect what a vault holds, per asset. Both network and asset are optional filters — omit them for everything.

GET /v1/vault/{vault_id}/balances?network=ethereum&asset=USDT
{
  "data": {
    "balances": [
      {
        "asset": "Ethereum",
        "network_id": "60",
        "network_symbol": "ETH",
        "raw_value": "1000000000000000000",
        "raw_value_decimals": 18,
        "display_values": {
          "amount": "1.5",
          "raw": "1000000000000000000",
          "usd": "3500.00"
        }
      }
    ]
  },
  "message": "operation completed successfully",
  "success": true
}
FieldNotes
assetAsset name
network_symbolNetwork the balance is held on
raw_valueBalance in the asset's smallest unit (stringified integer)
raw_value_decimalsDecimals to apply to raw_value
display_values.amountHuman-readable amount (already divided by decimals)
display_values.usdIndicative USD value
Tip

Use raw_value + raw_value_decimals for exact accounting; display_values.amount and display_values.usd are convenience fields for display only.

Total value

Get the total USD value across all of a vault's assets.

GET /v1/vault/{vault_id}/total?include_currency=usd
{
  "data": {
    "total_usd": "25000.00",
    "included_currency": ["ETH", "USDT"]
  },
  "message": "operation completed successfully",
  "success": true
}
FieldNotes
total_usdCombined USD value of every asset in the vault
included_currencyThe assets that contributed to the total

API surface

EndpointPurpose
GET /v1/vaultList vault accounts for the tenant
GET /v1/vault/{vault_id}/addressesAll vault addresses across networks
GET /v1/vault/{vault_id}/addresses/{network}Vault address on one network
GET /v1/vault/{vault_id}/balancesPer-asset balances, with optional network/asset filters
GET /v1/vault/{vault_id}/totalTotal USD value across the vault

See the API reference for full schemas and error codes.

Next

  • Payouts — send funds from a vault to an external address.
  • Gas station — how native gas is funded for vault transfers.
  • Payout Quickstart — your first payout, end-to-end.
Was this page helpful?