Verify, Don’t Vouch

The Guild’s trust story is not a promise — it is a set of artifacts you can check. This page tracks each one honestly: live, planned, or not there yet.

Checkable Today

The escrow component, live on mainnet
Every funded task's reward and insurance sit in the component's vaults — the escrow balances are public. Posting and funding are two separate steps, so a task can be listed before it is funded; those hold nothing on chain and are labelled 'Awaiting escrow funding — not claimable yet'. Inspect state, config, and transaction history directly on the Radix dashboard.
Safety releases are public methods
expire_claim and auto_resolve_dispute carry no badge requirement — anyone can call them once their time gate passes, so no absent platform can hold a task hostage. Two limits we will not paper over. A Submitted task has no auto-release in the deployed component: a poster who goes silent can leave a worker waiting indefinitely (auto-release is a vNext2 change). And because expire_claim is permissionless it cuts both ways — from the second a claim deadline passes, anyone can call it and forfeit the claimer's whole bond — 10% of the reward, never less than 76.45 XRD, capped on-chain — racing a late submit that would otherwise still succeed. Submit before your deadline.
Verify: Method table in the auditor's guide §1 — and the deployed package's own method-auth schema on the Radix dashboard, where expire_claim and auto_resolve_dispute both show as PUBLIC. The dispute path is live in the app, and the one dispute settled so far — task 3's auto-resolve, 2026-08-26, an internal probe run before we turned the UI on — is readable on the ledger.
The platform never signs on the money path
Our keeper is watch-only by decision: it alerts humans over Telegram and holds no signing key. Winners finalize from their own wallets. What that does mean: the contract itself decides who is owed what — approve_and_release credits the worker and the poster inside the component, payable only to the accounts pinned when the task was claimed, so the settlement transaction cannot redirect either share. Read the manifest your wallet shows you before you sign anyway. The limit that remains is that a credited share is not a collected one until you sign your own withdrawal.
Verify: Auditor's guide §2, claim 2 — the keeper's watch-only decision is stated in-code at scripts/keeper.mjs, and every settlement in the component's history is signed by the poster's or the worker's own account, which you can read off each transaction on the dashboard.
Terms are committed at funding
Acceptance criteria, deadlines, and revisions are SHA-256 committed into the task (work_brief_hash) at funding. Nothing about the brief can change afterwards without breaking that hash, so tampering is detectable by anyone. Honest scope: the component stores the hash, it does not judge against it — that is what the arbitration path is for, and it is an operator ceremony with no promised turnaround, not an automatic judge.
Verify: Auditor's guide §2, claim 3 — recompute the hash via the Gateway.
The arbiter's independence is narrower than it sounds
resolve_dispute checks one identity: the arbiter may not be the task's worker (the chain asserts it and reverts otherwise). It does not, and cannot honestly, check the poster — the poster field is a caller-supplied destination, not a verified identity, so a poster-side check would defeat itself for the price of a decoy address. In practice: an arbiter who funded a task may still rule on it. They cannot steal doing so — settlement pays only the accounts pinned at claim and funding, never the arbiter — but they can rule in their own favor as poster. The arbiter badge has supply 1 today, so this is worth weighing plainly rather than assuming away.
Verify: Disputes & Arbitration — resolve_dispute's self-dealing check, and what it deliberately does not cover.

Recipes with exact steps: the auditor’s guide.

The Backing Plan — Status

Escrow blueprint source published
Planned
Publishing — opens at launch, and no date is set. The money-path blueprint is the part readers need first.
What it proves: The auth roles and vault rules described in the auditor's guide are the code that actually runs.
Reproducible-build verification
Planned
Follows source publication: build the blueprint yourself, compare the hash against the deployed package.
What it proves: The published source compiles to exactly the deployed on-chain WASM.
Bug bounty through our own escrow
Planned
Posted as real on-chain Guild tasks once the source is public — the pot is provably funded, the payout path is the product itself. In the meantime, a beta bug bounty (manually-paid XRD gifts) runs at /bug-bounty.
What it proves: Security claims have skin in the game, visible on-ledger.
Timelocked commitment bond
Planned
An on-ledger, metadata-named pledge with a visible unlock date — amount and duration to be announced.
What it proves: The pseudonymous operator has posted value that outlasts any quick exit.
Trustee-verified identity for big engagements
Available on request
Tasks and projects over $50k USD: we engage a third party to attest the operator's identity and standing — accountability without public doxxing. No trustee is retained standing; one is engaged when the first such engagement appears, so allow lead time.
What it proves: Large counterparties get recourse without the operator self-doxxing.

Where no clean mechanism exists yet, we say so: the honest-gaps register is live, not historical. Got a better mechanism? Post it as a task. Let’s build it.

Questions, audits, or anything that looks off: say it on Telegram.