Vault
per asset- Custodies the ERC-20 reserve and shared config
- Deploys ledgers via deploy_tongo(owner, tag, auditorKey?)
- Enables confidential transfers between its ledgers
no trusted setup. no oracles. no TEEs. no external servers.
ElGamal encryption and zero-knowledge proofs wrap any ERC-20. Proven client-side, fees paid in-protocol — no blockchain account needed.
import { Account, RelayerAccount } from "@fatsolutions/tongo-sdk" const account = new Account(tongoKey, tongoAddress, provider)const relayer = new RelayerAccount( tongoAddress, relayerAddress, paymasterUrl, provider,) const op = account.transfer(to, amount, { feeToSender })const prepared = relayer.buildTransactionToSign(op, snip9Nonce)const signature = account.signMessage(prepared)await relayer.execute(prepared, signature) // proven in-browser · fee paid in the transferred assetfund()Move ERC-20 into an encrypted balance.
transfer()Send a hidden amount.
withdraw()Convert back to standard ERC-20.
rollover()Move pending funds into your spendable balance.
ragequit()Exit your full balance, revealing it.
A Vault holds the reserve, Tongo Ledgers hold encrypted state and verify proofs, and an optional Relayer covers gas.
A Tongo key — fresh or derived from one you hold — encrypts the amount, builds the proof, and signs. All in your browser.
Submits the operation on-chain and pays gas, taking its fee from the operation itself. Skip it and submit directly instead.
Checks the proof and updates encrypted balances. Invalid proofs are rejected.
Moves the real ERC-20 in or out of the reserve.
Replay is prevented by a SNIP-9 nonce derived from the account’s current nonce.
| Asset | Tongo ledger | Decimals | Rate |
|---|---|---|---|
| USDCnative | 0x00b32618c4…0faad4d3 | 6 | 1e3 |
| STRK | 0x07e3601b8a…674c5691 | 18 | 1e16 |
| ETH | 0x04bd49a293…9bd91ab7 | 18 | 1e12 |
| USDT | 0x00f7caef02…04a82c94 | 6 | 1e3 |
| WBTC | 0x01c20dc3b0…711917e1 | 8 | 1e1 |
0x038aa8efb4e76b524c4a49b92284187b229174de5f431f288bbd7c8e0e441c12Sepolia, Vault and ERC-20 addresses, and the class hashes live in the docs.