TL;DR
MajorityVoting plugin instance.Traditional freelance platforms resolve disputes through opaque support queues. FiduWork moves the resolution into a DAO framework so evidence, votes, and payouts share one auditable trail. The mechanism sits on top of Aragon-OSx, the modular DAO stack that separates governance logic into plugins around a permission-managed core, as described in the Aragon documentation.
This deep dive covers the panel state machine, juror selection, voting window mechanics, stake economics, failure modes, and how the design compares to alternative arbitration systems. It is written for engineers, auditors, and platform evaluators who need enough substance to judge the trade-offs before recommending the system for real budget.
An Aragon-OSx panel is a DAO instance whose only role is to vote on a single freelance dispute. Panels use the Aragon-OSx framework modular plugin model, which lets one DAO run governance through pluggable voting logic. FiduWork spawns 1 panel per open dispute with 3, 5, or 7 seats depending on escrow value, then destroys it after settlement.
The panel follows a linear lifecycle: it is created after a milestone is disputed on the escrow, the juror roster is drawn, voting opens for the 72 hour window, the tally is computed after the deadline, and the escrow reads the ruling and moves USDC. Every step is expected to emit an event so an external observer can reconstruct the case without querying a platform database. The exact event names, function selectors, and state labels should be read from the deployed contract source rather than trusted from prose.
That event-driven observability property mirrors the auditability guarantee described in the Ethereum whitepaper: state is public, transitions are signed, and anyone can replay the sequence.
Juror selection draws 3, 5, or 7 wallets from a staked juror pool for each dispute. Panel size is chosen at dispute open. The exact size rule and the on-chain randomness source are configured in the deployed contract; readers should verify the current parameters against the Sepolia deployment rather than treating them as fixed forever. Aragon's permission-managed governance model is what makes the selection call gated to the escrow contract in the first place.
A juror pool typically filters candidates before drawing a panel. Common filter categories include: a staked bond on the juror wallet, absence of recent counterparty overlap with either side of the dispute, some minimum track record inside the pool, and no active seat on another open panel. The exact thresholds are set in the deployed contract and should be read from source before any evaluator quotes them as guarantees.
Odd sizes rule out ties in a binary ruling. Small seat counts keep coordination cost per case low. Larger seat counts give the system Schelling-point resistance under adversarial pressure, an approach explored in the wider literature on decentralized crowd-sourced adjudication. The 3, 5, or 7 seat sizing is a public product parameter; the mapping of size to dispute value is a deploy-time choice.
Juror participation is expected to be tied to a DID-anchored verifiable credential so that a single human identity cannot spam the pool with fresh wallets. The DID and reputation binding is discussed in the wider FiduWork escrow architecture deep dive. The exact credential schema and verification flow are contract-side details the evaluator should confirm before signing off.
Voting runs on an Aragon-OSx majority-voting plugin instance configured for a fixed 72 hour duration. Each juror wallet gets 1 vote, cast as a signed on-chain transaction. The Aragon-OSx plugin architecture is the framework layer that enforces the voting window contract-side, so the deadline is not something the platform can override off-chain.
The vote itself is a ruling on the disputed milestone: release funds to the freelancer, or refund the client. Whether the plugin instance also accepts an abstain option, and how abstention interacts with juror payout, is a deploy-time configuration on the plugin. Read the deployed instance rather than assuming a fixed option set.
Aragon-OSx voting plugins carry a configurable quorum threshold. If not enough of the panel votes inside the 72 hour window, the plugin does not tally a ruling and the escrow needs a documented fallback path. The exact quorum number, the re-draw policy, and any governance escalation route are contract-side parameters that an evaluator should read from source before quoting to a stakeholder.
Evidence is expected to live off-chain and be referenced from the on-chain panel by a content hash so the chain footprint stays small while the evidence itself stays verifiable. IPFS and similar content-addressed stores are common vehicles for this pattern. The exact evidence-submission flow, storage backend, and hash format are product-side choices to confirm against the deployed system, following the general logic for verifiable off-chain data described in the Ethereum whitepaper.
A juror vote is a lightweight state transition: 1 signed transaction per juror per case. On Sepolia this cost is negligible; on any mainnet promotion the total gas cost per dispute stays bounded by the panel size, because the plugin only records a small counter and event per vote rather than persisting per-vote metadata. How gas is ultimately reimbursed to jurors is a payout-policy detail on the platform side.
Aragon-OSx voting plugins expose a start and end timestamp at instantiation, so any third-party observer can independently compute when the panel closes without querying the platform. Whether the plugin variant chosen for FiduWork uses block timestamps, block numbers, or an alternate source is a deploy-time configuration to verify against the deployed contract.
Jurors read the panel address, the escrow reference, and the evidence hash from chain data, pull the evidence off-chain, review, and sign a vote. There is no shared workspace and no cross-juror chat surface exposed to attackers. Silence between jurors is a feature, since it protects Schelling-point convergence, which requires jurors to guess the focal point rather than negotiate to it.
The 5% stake is a bilateral filter against frivolous disputes. Both parties lock 5% of the disputed milestone in USDC before the panel is drawn. That pooled 10% becomes the settlement pot, distributed 30% to jurors and 70% to the winning side, using the on-chain accounting pattern documented for stablecoin flows by Circle's USDC developer docs.
A percentage stake scales the cost of raising a dispute with the value at risk. Small milestones get cheap access to arbitration. Large milestones automatically raise the bar so a losing party cannot use disputes as a delay tactic without material cost.
The 30% share compensates jurors for the time, gas, and coordination effort of reading evidence and voting. Splitting it across 3, 5, or 7 seats keeps per-juror rewards modest, which raises the bribery bar because a would-be briber has to beat every seat, not just one. The 70% winner share offsets the friction the honest party absorbs proving the case, an incentive shape common to Schelling-scheme designs across decentralized jury systems.
A stake-and-slash Schelling scheme is the standard pattern for on-chain juror systems: minority voters against a coherent case forfeit some portion of their bond, and honest jurors converge on the focal point. Where the slashed value goes, and how repeated slashing affects pool eligibility, are contract-side parameters to read from source. What the platform commits to publicly is the 5% bilateral stake and the 30/70 split; anything more specific about the slashing math belongs in the deployed contract, not in a blog post. Isolating that logic from any platform admin surface is the OpenZeppelin security audit corpus style of design worth confirming on review.
Every dispute system faces adversarial jurors, low turnout, and coordinated attacks. FiduWork mitigates these with quorum requirements, stake slashing, odd panel sizes, and the option to escalate to a governance vote. Crypto exploit losses tracked by Immunefi's reports crossed the $1.7B mark in 2025 year-to-date across the wider DeFi surface, which is the baseline scale of adversarial creativity any on-chain dispute system must plan for.
Attacker spins up many wallets to game the draw. Standard mitigation categories are DID-anchored credentials, a track-record requirement inside the pool, and a real capital lock per juror seat. The strength of each of those depends on the specific thresholds set contract-side, which is why an evaluator should read those values from the deployed juror-pool contract rather than trusting a summary.
Attacker tries to buy a majority of seats on a small panel. The general defense is that a briber must beat both the juror's expected settlement share and the loss from slashing on every seat, and both terms grow with the value at stake because the stake is a percentage of the milestone. On a small milestone the absolute defense is small; the 3-seat option exists for cases where that trade-off is acceptable.
Attacker convinces jurors to no-show and force a quorum failure. The general defense is a payout structure that penalises abstention and a re-draw or governance escalation route on quorum failure. Whether the escalation path is a re-draw, a size increase, or a governance-only fallback is a product decision to confirm against the deployed system.
Dispute logic itself is a smart contract. Mitigation path: independent audits before mainnet promotion, following the review discipline documented across Trail of Bits' public audit reports and the OpenZeppelin security audit archive. Sepolia beta status exists precisely so mechanism issues surface before real value is at risk.
An attacker could try to observe pending vote transactions in the mempool and time a settlement to favor a specific outcome. General defense: the tally is a pure function of on-chain state read after the deadline, and settlement should be callable by any wallet, not just the parties, so timing the settlement transaction has no value once the deadline passes.
If a juror wallet is compromised while the panel is open, the attacker can cast that wallet's single vote. Blast radius is capped at 1 seat per compromise, and a compromised seat rarely swings a 5 or 7 member majority. On 3 seat panels the smaller size is a conscious trade-off for lower-value milestones.
Congestion can push a settlement call several blocks past the deadline. Mitigation: settlement is idempotent and stateless with respect to timing beyond the deadline check, so late execution still produces the same payout, following the deterministic execution property described in the Ethereum whitepaper.
FiduWork's design sits in a specific corner of the design space: task-scoped panels, small odd sizes, short window, bilateral stake. That combination differs from platform arbitration, single-arbitrator escrow, and large-panel decentralized courts, all of which trade time-to-ruling for depth of appeal. The trade-offs matter for anyone budgeting for arbitration cost or predictability.
The clearest trade-off is speed versus depth of appeal. Larger courts allow multiple appeal rounds at the cost of weeks per case. FiduWork's fixed 72 hour window optimizes for cash flow, which matters for freelancers whose payment cycles are otherwise measured in weeks. Predictable settlement time is the point of choosing a small odd panel with a hard-coded deadline in the first place.
Platform Signal. On our Sepolia beta, 1,200+ freelancer profiles moved $2.4M+ in on-chain payments with response times averaging under 2 hours, and the panel design is being stress-tested against that flow before mainnet promotion.
The regulatory frame for on-chain dispute mechanisms in the EU sits inside the crypto-asset service provider rules. MiCA Regulation (EU) 2023/1114 Article 60 governs authorisation of any crypto-asset service provider (CASP) offering custody, exchange, or transfer services inside the EU, and its authorisation regime shapes how a platform can design its arbitration surface without triggering CASP registration for the panel itself.Source
Compliance corner. Because the FiduWork panel is non-custodial and its jurors act on wallet-level permissions rather than holding funds, the panel operator does not itself provide a crypto-asset service under MiCA Article 60. The escrow contract holds USDC; the panel signs a ruling. Where the platform interfaces with fiat rails, additional CASP authorisation analysis applies under the same authorisation regime, and the wider MiCA text at eur-lex.europa.eu is the primary reference.
IPFS-stored evidence is a public record. Both parties should redact personal data before submission to stay inside GDPR practice. Contract addresses, milestone amounts, and rulings are already public via chain data, so the sensitive surface is the evidence content itself.
An on-chain ruling settles the USDC. It does not, on its own, resolve contract-law questions about IP transfer, warranties, or indemnities. Parties who need those enforced still need a written services agreement pointing at the on-chain settlement as the payment settlement mechanism, an approach compatible with the platform's FiduWork pricing and documentation structure.
The point of the checklist is that every substantive claim about the mechanism should be testable on-chain. Anything in this piece that reads like a specific contract parameter should be treated as descriptive of the design intent, not as a guarantee, until the deployed source confirms it.
If you want to see the full mechanism, review the FiduWork escrow architecture deep dive or read the protocol documentation. The wider blog archive has related pieces on reputation and payment rails.
Audit Our Escrow Architecture. Read the escrow and panel contracts, then verify the Sepolia transactions yourself. Open the app.
More articles









