Actually Smart Contractsalpha

Status: the sandbox runs today live. The SDK and API on this page are planned planned.

Docs

Disputes

Any party to a ruling can send it to a second jury before the window closes.

asc.dispute()TypeScriptplanned
const second = await asc.dispute(ruling.id, {
  reason: 'The ticket shows the user asked for this address change in person.',
});
// second.status: 'final' (upheld or overturned) or 'escalated'

Who can dispute

The caller who asked for the ruling, and anyone the ASC names as a party. A dispute gives a reason in one or two sentences.

The window

The ASC sets it, like dispute: { window: 72h, second_jury: true }. The ruling carries dispute.open_until. After that, the ruling is final.

The second jury

A new jury, drawn from other labs than the first, reads the same evidence by the same hashes. It doesn't see the first jury's votes.

Three results

ResultWhat happens
UpheldThe second jury reached the same outcome. The first ruling stands.
OverturnedThe second jury reached a different outcome with quorum. Its ruling replaces the first.
EscalatedThe second jury didn't reach quorum. The ASC's default outcome applies.

Payouts wait when the ASC says so

If the ASC says so, a payout waits for the window to close before it runs. Use this for grants, vesting and anything that can't be clawed back.

A dispute costs the price of the original ruling. See Credits and pricing. Recorded examples of all three results are in Recorded runs.