Trade mechanics

Every trade on InVeil follows the same straight line: someone posts an offer, a counterparty takes it, both sides agree on terms inside an encrypted trade room, one side delivers goods, the other confirms receipt, and the escrow releases. This page walks through that line from start to finish, and the three possible exits at the end. How to choose between those exits when something has gone wrong is a separate question — covered in When things go wrong.

One naming convention to calibrate first

On InVeil the asset held in escrow is USDT, and we name the two parties from USDT's perspective:

  • Seller — the party who has USDT to lock. Locks the full trade amount in escrow at activation. They want to receive goods.
  • Buyer — the party who wants USDT. Locks a 100 USDT anti-fraud stake. They want to receive USDT.

So in InVeil's vocabulary, the Seller receives goods and the Buyer ships them. This inverts the everyday "seller delivers, buyer pays" reading, and it's worth holding in mind before reading the rest of the page — half the role assignments below land oddly otherwise.

The flow, step by step

1. Offer + take

Someone (the poster) creates an offer describing what they want to trade and which side they sit on — selling USDT or buying USDT. A counterparty finds the offer in the market and takes it. The instant both sides are in, the escrow locks two things at the same time: the Seller's full trade amount, and the Buyer's 100 USDT anti-fraud stake. Neither side can move these until the trade resolves.

2. Rules — Seller proposes, Buyer agrees

The Seller writes the rules of the trade — what counts as delivery, what doesn't, anything the Buyer needs to know — and submits them as an encrypted blob pinned to IPFS. The CID is anchored on chain so both sides hold a tamper-evident reference. The Buyer reads the rules inside the trade room and either agrees or rejects. If they reject, the Seller revises and re-proposes. The trade can't advance until a confirmed set of rules exists on chain.

Each propose locks 1 USDT from the Seller as an anti-spam stake — refunded if the Buyer agrees, forfeited to treasury if the Buyer rejects or if the Seller overwrites a still-pending proposal with a new one. The mechanism exists so a Seller can't grief the Buyer by rapid-firing rule revisions that each cost the Buyer review gas to dismiss. Full economics on Fees.

3. Receiving address — Seller proposes, auto-confirmed, one-shot

The Seller submits an encrypted blob containing where the goods should be delivered. Unlike the rules, this is auto-confirmed the moment it lands — there is no separate Buyer-agree step — and it can only be set once. If the Seller fat-fingers the address, the only correction path is to walk away from the trade and start over. This sharp edge is deliberate: the address determines where value goes, and editability is the wrong property for it.

4. Buyer delivers, anchors proof, marks shipped

The Buyer fulfills the rules — ships, transfers, or hands off whatever the trade is about — and uploads delivery proof as an encrypted blob, again with its CID anchored on chain. Once the proof is anchored, the Buyer marks the order as shipped. The order state moves to BuyerShipped. This is where the flow forks.

The three exits from BuyerShipped

From this point, exactly three on-chain actions can close the trade. They differ in cost, in what each side walks away with, and in what each side's future counterparties will see on their profile.

Exit A — Confirm receipt (the happy path)

The Seller inspects the delivery, decides everything matches, and clicks Confirm receipt. In a single transaction: the full trade amount releases to the Buyer (minus a 0.2% commission), the Buyer's 100 USDT anti-fraud stake is returned, the order closes as Completed, and both parties' reputation ticks +success and +volume. This is the outcome every trade is shaped to land at, and the cheapest one for everyone involved.

Exit B — Negotiate (partial settlement)

If the two sides agree the trade can't release in full but neither wants to escalate to arbitration, either side can propose a partial settlement: a specific number of USDT to release to the Buyer, with the rest refunded to the Seller. The proposal carries a free-form note explaining why.

The other side accepts the proposal, rejects it, or rejects-and-counters with a different amount. There's no cap on how many rounds — you can go back and forth until you converge or one side gives up.

When a proposal is accepted, the agreed amount releases to the Buyer (minus 0.2% commission on that amount), the remainder refunds to the Seller, the Buyer's 100 USDT anti-fraud stake is returned in full, and both parties' reputation ticks +success and +volume on the partial amount. The fee schedule is identical to a happy-path trade — no extra penalty, no forfeited stake. This is the path where a disagreement closes without anyone losing anything they brought to the trade.

Exit C — Arbitration

If negotiation fails or the situation is one negotiation can't reach (the counterparty went silent, an outright scam attempt), either side can pay a 150 USDT filing fee and open a dispute. The escrow freezes. The Senior Arbitration Committee — a fixed three-seat panel — reads both sides' encrypted evidence, votes, and rules. The ruling settles on chain the moment the vote closes: the winner receives the disputed amount and gets their own filing fee back; the loser forfeits the disputed amount and their filing fee (which flows to the protocol treasury). Any anti-fraud stake the loser posted at trade time goes to the winner per the same ruling. Both sides' reputation records a dispute win or loss permanently.

How arbitration actually runs — the committee panel, the evidence and deliberation windows, the timeline — is covered in Arbitration.

Choosing between the three

The exits above are described mechanically. Which one to actually reach for when a trade has gone sideways is a different question — it depends on what the disagreement is, how much is at stake, and what the other side is doing. We've kept that conversation on its own page so it doesn't get diluted by mechanics. See When things go wrong.

Trade mechanics