Reputation
Reputation on InVeil is a derived view of what your wallet has actually done on-chain — not a star rating someone can fake, not a manual review somebody at InVeil quietly steers. Every metric on this page is computed by the ReputationRegistry contract from settlement events, with no edit function for anyone, including us.
What's tracked
Three numbers per wallet, updated automatically on every order that reaches a terminal state:
- Win-rate — the share of disputed orders this wallet won, as ruled by the panel. A wallet with no disputes has a win-rate of "—" (not 100%); the count starts only after the first dispute settles.
- Cumulative trade volume — the total USDT principal that has flowed through orders this wallet was a party to, on the settled side only. Cancels and timeouts don't count. Volume is the rough "size" signal: a wallet that has cleared $200k of trades reads differently from one that has cleared $200.
- First-active date — the timestamp of this wallet's first on-chain action on InVeil. The chain remembers; the registry surfaces it. Six months of consistent trading reads differently from six days, even at the same volume.
How the numbers update
Reputation writes happen only along these specific events:
- Order settled (confirmed receipt or agreed partial) — both parties' volume increments by the settled amount. No dispute, no win/loss recorded.
- Dispute resolved — the winning party's win count increments by 1; the losing party's loss count increments by 1. Volume increments on the side that received funds.
- Order cancelled or timed out — no reputation movement. Cancels and timeouts are neutral.
Only EscrowLogic can write to the registry, and only along these rules. No "edit reputation" function exists for the operator, the committee, or anyone else. A bad ruling cannot be quietly unwritten; a clean record cannot be quietly padded. What's there is what happened.
What you see on a counterparty's profile
When you click a counterparty's address — from an offer listing, an active trade, or a dispute panel — the profile shows:
- Wallet address in full, copyable, linked to Arbiscan for independent verification.
- Win-rate and the absolute dispute count it's computed over ("8/9 = 89%" rather than just "89%"). The count matters: 89% over 9 disputes reads very differently from 89% over 90.
- Trade volume in USDT, all-time and last-30-days. The 30-day window is rendered by the frontend; the underlying total is on-chain.
- First-active date, formatted as a relative duration ("active for 8 months").
- Trading balance available if the wallet has unlocked USDT sitting in Trading. This is the optional "skin in the game" signal — a serious trader can show they've got significant capital reserved (and earning Aave yield in the meantime). Surfaced on the Market page as the "X USDT available" line on each of their offer cards. Hidden when the wallet has no unlocked Trading balance.
Why reputation survives every upgrade
Reputation lives in its own contract — ReputationRegistry — separate from EscrowLogic. The trade engine can be redeployed without touching the registry. When we ship a new EscrowLogic, the deployment rotates the writer role from the old logic to the new one; the registry's storage is untouched. Your win-rate, volume, and first-active date carry across every protocol upgrade for as long as the wallet exists.
The only thing that resets reputation is registry redeployment — and the registry is explicitly designed not to be redeployed. The deploy script flags it as "vault-once" and warns loudly before any operation that would orphan its state.
Reputation