how it works

Every deal lives in its own smart contract. We never hold your funds. The on-chain state machine has six terminal states (Released, Refunded, Resolved, Expired) plus the working states (None, Funded, Disputed).

1. Create

Buyer signs in, links their Tron wallet, and creates a deal: counterparty address, amount, inspection period (1–30 days), description. The backend stores the deal record and returns the arguments for a single on-chain call: factory.createEscrow. Buyer signs that → a new escrow clone is deployed (~5 TRX of bandwidth/energy).

2. Fund

Buyer signs two transactions: USDT.approve(escrow, amount) and escrow.fund(). The USDT moves from buyer to escrow. The inspection timer starts. The seller is emailed (if they provided an address).

3a. Happy path: buyer releases

Seller delivers (off-chain). Buyer clicks Approve Release. Contract transfers amount − 1% fee to seller, 1% to fee recipient. Status: Released.

3b. Seller refunds

If the seller can't deliver, they click Refund Buyer. Contract returns the full amount to the buyer (no fee). Status: Refunded.

3c. Inspection elapses without action

If the inspection period ends and the buyer hasn't released OR disputed, the seller can click Claim After Inspection. Same payout as Released. Status: Expired.

4. Dispute

Either party can dispute BEFORE the inspection ends. Both parties write up their case in the app; the on-chain contract is just frozen at Disputed.

5. Arbitration → 24h appeal window

The operator reviews and publishes a decision: who gets paid, and how much. This kicks off a 24-hour window during which:

The on-chain call is escrow.resolve(payee, toPayee) signed by the operator/arbitrator key. The fee is deducted from the payee's portion; the remainder (if any) goes to the other party with no fee.

Status after execution: Resolved.

What we don't control

Once a deal is funded, the smart contract owns the USDT. We can't move it. Even the arbitrator can only call resolve() after a dispute is open — the call is gated by the contract's state machine.

Tether freezes: Tether (the issuer of USDT-TRC20) can freeze any address at any time, including escrow contracts. This is outside our control. Read the Terms of Service for the risk allocation.