Documentation
Bridge
A bridge between TUSD on Tint and USDT on Ethereum and BNB Chain, being built and tried on the Sepolia and BSC Testnet test networks first.
Test network: the coins have no value
How it works
A bridge contract lives on each Ethereum-family network. It holds tokens; it does not know the Tint network.
Deposit: from Ethereum or BNB Chain to Tint
- You call
deposit(token, amount, tintAddress)on the bridge, naming the Tint address that should be paid. The token goes into the contract. - The contract emits a deposit event with the token, the amount, your address and the Tint address.
- The bridge pays the same amount of
TUSDon the Tint network to that address.
Withdrawal: from Tint to Ethereum or BNB Chain
- You pay
TUSDon Tint to the bridge and name the address on the other network. - The bridge's signers see that payment arrive and sign a release for it.
- Anyone can then hand in
release(token, to, amount, order, signatures)with at least the threshold of signatures, 65 bytes each. The contract checks them and pays the tokens out; only the signers can make the signatures.
Each release carries an order number, a hash of the Tint payment. The contract remembers every order it has paid, so one Tint payment is paid out once.
What is custodial today
- The contract trusts its signers to release only what really arrived on Tint. A release needs a threshold of them (for example, 2 of 3) to sign an EIP-712 style digest.
- The contract trusts its owner to name honest signers. The owner can change the rules, the signers and pause the bridge. Ownership moves in two steps: it is offered, then accepted.
- Today the owner and the signers are chosen by the Tint team. If they are dishonest or lose their keys, deposited tokens can be taken or stuck. That is what custodial means.
Limits the contract enforces
These are there to cap the damage a mistake or a stolen key could do. Each token has its own rule:
| Rule | Meaning |
|---|---|
| Enabled | Whether deposits and releases of this token are open at all. |
| Granularity | Every amount must be a multiple of this, so that no dust is lost between a token's decimals (6 for USDT on Ethereum, 18 on BNB Chain) and Tint's 8. |
| Minimum | The least one deposit or release may move. |
| Maximum | The most one deposit or release may move. |
| Daily limit | The most all releases of one UTC day may move together. |
| Pause | While the bridge is paused, nothing is deposited or released. |
What the bridge does to privacy
The Ethereum side is public. A deposit event shows the token, the amount, the sender and the Tint address it goes to. A release shows the recipient and the amount. Moving funds across the bridge links your public address to a Tint address and to an amount, so treat a crossing as visible. Once your TUSD is on Tint, payments between notes are private again.
The test token
To try the bridge where real stablecoins do not exist, the repository includes a TestDollar contract. Anyone may mint some for themselves, up to a cap per call, and it is worth nothing. It has 6 decimals to behave like USDT on Ethereum, or 18 like USDT on BNB Chain. Never deploy it on a network with real money.
Status
- The bridge contract and the test token are written, with tests. They are not audited.
- The Tint-side part, meaning how deposits are paid out and withdrawals are noticed, is not published yet, and the flow above may change.
- The wallet shows the bridge as “soon”. There is nothing to bridge yet.