Pilot environment: testnet, simulated yield, mocked fiat rails — read the disclosure
Concepts

Yield as a service

Fiat you already hold, placed into a TCB curated vault and held as a position you can partition, read and redeem.

Yield as a service is the half of the API that turns fiat into a position. A deposit debits a fiat account you control and buys shares of the curated vault for that currency. The shares sit in one wallet TCB custodies for you, and a ledger records which of your own vault sub-accounts they belong to, so you can attribute the position to your funds, strategies or products. A withdrawal sells shares and credits a fiat account you control.

What you can do

CapabilityGuide
Place fiat from an account you control into a curated vault, and take it back outVault deposits and withdrawals
Run the same chain one step at a time — mint tcbUSD from fiat, put it into the vault, redeem at once or through the vault's queue, and redeem tcbUSD back to fiatTokenised deposits, step by step
Hold a yield-bearing vault position and read what it has earnedPositions
Partition your position by fund, strategy or product, and read each slice on its ownPositions
Be told when something settles, without polling — this one spans both halves of the APIWebhooks

The shape of it

Blue holds fiat, gold holds shares. The blue lines are money moving; the grey lines are structure.

Both legs are announced to an endpoint you register — deposit.settled and withdrawal.settled — so you do not have to poll for either.

The share count does not change on its own. Nothing is credited, compounded or swept on a schedule: the vault's share price rises as yield accrues, so the same shares are worth more each time you read them. That is what accrual means on this API, and it is set out in full in Shares, position and accrual.

Step by step

StepWhat happensRoute
1. Deposit fiatTCB debits a fiat account you control and buys vault shares. The shares sit in one wallet TCB custodies for you, and the ledger records which vault sub-account they belong to.POST /deposits
2. Hold the positionYour share count stays where your deposits and withdrawals put it. The vault's share price rises as yield accrues, so the same shares are worth more each time you read them.GET /positions
3. WithdrawA withdrawal sells shares and credits a fiat account you control.POST /withdrawals

Name a subAccountId on a deposit or a withdrawal to attribute it to one of your own partitions. A call that names none lands in tcb:default, the vault sub-account you hold from the moment the relationship exists. Create your own with POST /sub-accounts and list them with GET /sub-accounts.

Where the money can go

FromToHow
Your fiat accountA vault positionPOST /deposits
A vault positionYour fiat accountPOST /withdrawals

Getting fiat onto that account in the first place — accounts, IBANs, crypto in, conversions, transfers and payouts — is the other half of the API: Banking as a service.

The states a deposit or a withdrawal passes through, and what to do at each one, are in The money lifecycle. A withdrawal that has started executing can never be declared FAILED; build for that before you write a retry.

The guides

Pilot disclosure

On this page