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.
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.
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
}| Field | Notes |
|---|---|
id | Vault id — pass it as vault_id when creating a payout |
label | Human-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
}| Field | Notes |
|---|---|
address | The vault's wallet address on this network |
network_id | Stridge internal network id |
network_symbol | Network symbol, e.g. ETH, TRX |
created_at | When 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
}| Field | Notes |
|---|---|
asset | Asset name |
network_symbol | Network the balance is held on |
raw_value | Balance in the asset's smallest unit (stringified integer) |
raw_value_decimals | Decimals to apply to raw_value |
display_values.amount | Human-readable amount (already divided by decimals) |
display_values.usd | Indicative USD value |
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
}| Field | Notes |
|---|---|
total_usd | Combined USD value of every asset in the vault |
included_currency | The assets that contributed to the total |
API surface
| Endpoint | Purpose |
|---|---|
GET /v1/vault | List vault accounts for the tenant |
GET /v1/vault/{vault_id}/addresses | All vault addresses across networks |
GET /v1/vault/{vault_id}/addresses/{network} | Vault address on one network |
GET /v1/vault/{vault_id}/balances | Per-asset balances, with optional network/asset filters |
GET /v1/vault/{vault_id}/total | Total 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.