Subaccords¶
A specialized Juror pool. Permissionless to create; one per (creator, domain_ref).
create_subaccord params¶
| Param | Type | Notes |
|---|---|---|
domain_ref |
[u8; 32] |
Immutable identity hash. != [0;32]. Namespaces the PDA. |
evidence_spec |
[u8; 32] |
Immutable evidence-format hash. ADR-0006 |
staking_token |
Pubkey |
SPL mint for juror capital. ADR-0002 |
min_stake |
u64 |
Draw eligibility threshold (in staking_token). |
aggregation |
Aggregation |
Dispute-kit tally rule: Plurality (option-index votes) or Median (scalar u64 votes — ADR-0025). ADR-0019 |
coherence_tol_bps |
u16 |
Median coherence band in bps of the final median: coherent iff \|vote − ruling\|·10_000 ≤ ruling·tol_bps. Default 100 (±1%); 0 = exact; validated ≤ 10_000. Inert for Plurality. Immutable — frozen onto CaseTerms per dispute (ADR-0025). |
alpha_bps |
u16 |
Slash factor in bps. loss = alpha_bps · min_stake / 10_000. |
review_window |
u64 |
seconds |
commit_window |
u64 |
seconds |
reveal_window |
u64 |
seconds |
max_appeals |
u8 |
≤ MAX_APPEALS (3). The sole panel-shape knob — round-1 size is the fixed INITIAL_NUM_JURORS (=3). ADR-0019 |
fee_per_juror |
u64 |
in staking_token. |
authority |
Pubkey |
Pubkey::default() ⇒ immutable. Else signs propose/execute. |
evidence_operator |
Pubkey |
ADR-0006 re-encryption service. |
PDA¶
Mutability¶
- Immutable:
domain_ref,evidence_spec,aggregation,coherence_tol_bps,min_jury_size,shortfall_policy. - Mutable only via 48h timelock (
propose_subaccord_update→execute_subaccord_update):min_stake,alpha_bps,review/commit/reveal_window,appeal_window,max_appeals,fee_per_juror,authority,evidence_operator,reveal_threshold_bps,max_draw_attempts(ADR-0028;Medianpools requirereveal_threshold_bps > 0).aggregationandcoherence_tol_bpsare immutable (ADR-0019/0025) — they define the pool's coherence game. authority == Pubkey::default()⇒propose_subaccord_updatereverts withImmutableSubaccord.
accord::create_subaccord(
ctx,
domain_ref, evidence_spec, staking_token, min_stake,
alpha_bps,
review_window, commit_window, reveal_window,
max_appeals, aggregation, fee_per_juror,
authority, // Pubkey::default() => immutable
evidence_operator,
)?;
import { createSubaccord, findSubaccordPda, Aggregation } from "@useaccord/sdk";
const [subaccord] = await findSubaccordPda(
accord.PROGRAM_ID,
creator,
domainRef, // 32-byte hash
);
await createSubaccord(accord.adapter, accord.PROGRAM_ID, {
creator,
domainRef,
evidenceSpec,
stakingToken,
minStake,
aggregation: Aggregation.Plurality,
alphaBps,
reviewWindow,
commitWindow,
revealWindow,
maxAppeals,
feePerJuror,
authority,
evidenceOperator,
});
Why: ADR-0005. Param update flow: ADR-0005, instructions.