Core Concepts
Resource Hierarchy
Paratro organizes resources in a clear hierarchy:
Client
└── Wallet (MPC key container)
└── Account (blockchain address)
└── Asset (token on a chain)
└── Transaction (transfer record)
Client
A client represents your organization in Paratro. Each client has:
- A unique
client_id
- API credentials (API Key + API Secret)
- Configurable limits (max wallets, etc.)
- Webhook configuration for transaction notifications
Two environments are available:
| Environment | Base URL | Use Case |
|---|
| Production | https://api.paratro.com/api/v1 | Live operations |
| Sandbox | https://api-sandbox.paratro.com/api/v1 | Development & testing |
Wallets
A wallet is the top-level container for MPC key material. It holds the distributed key shares used to sign transactions across all accounts within it.
{
"wallet_id": "w_01HXYZ...",
"wallet_name": "My Wallet",
"status": "ACTIVE",
"key_status": "ACTIVE"
}
Wallet States
| Status | Description |
|---|
PROGRESSING | Wallet has been created and is waiting for key generation to complete |
ACTIVE | Wallet is operational |
Key States
| Key Status | Description |
|---|
GENERATING | MPC key shares are being generated |
ACTIVE | Key shares are generated and the wallet can sign transactions |
Accounts
An account is a blockchain address created under a wallet. You choose the target chain when creating it, and the gateway derives the response network value from its chain registry.
Supported chains: loaded dynamically from the gateway chain registry. Common examples include ethereum, base, tron, bitcoin, and solana.
Networks: derived by the gateway from the selected chain.
{
"account_id": "acc_01HXYZ...",
"wallet_id": "w_01HXYZ...",
"address": "0x1a2b3c4d5e6f...",
"network": "mainnet",
"status": "ACTIVE"
}
EVM-compatible chains (Ethereum, BSC, Polygon, Avalanche, Arbitrum, Optimism) share the same key derivation and produce the same address. The system handles this internally.
Assets
An asset represents a token (native or contract-based) added to an account. Asset configuration — contract address, decimals, type — is resolved automatically by the system.
{
"asset_id": "ast_01HXYZ...",
"symbol": "USDT",
"asset_type": "ERC20",
"contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"decimals": 6,
"balance": "1500.00",
"locked_balance": "0"
}
Supported symbols: ETH, TRX, USDT, USDC, BNB, MATIC, BTC, SOL
Asset Types
| Type | Description |
|---|
NATIVE | Native chain token (ETH, BNB, TRX, etc.) |
ERC20 | ERC-20 token on EVM chains |
BEP20 | BEP-20 token on BSC |
TRC20 | TRC-20 token on TRON |
Transactions
A transaction represents an asset transfer initiated from a Paratro account.
Transaction Lifecycle
PENDING → CONFIRMED
↓
FAILED
| Status | Description |
|---|
PENDING | Transfer submitted, awaiting on-chain confirmation |
CONFIRMED | Transaction confirmed on-chain |
FAILED | Transaction execution failed |
Transfer Resolution
When creating a transfer, you specify from_address, to_address, chain, and token_symbol. The system automatically:
- Locates the source asset by matching address + chain + token
- Validates the destination address format for the specified chain
- Locks the transfer amount
- Initiates MPC signing and broadcasts the transaction