Subaccords¶
A specialized Juror pool. Permissionless to create; one per (creator, risk_type).
create_subaccord params¶
| Param | Type | Notes |
|---|---|---|
risk_type |
[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). |
jurors_per_dispute |
u32 |
Round-0 panel size. |
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). |
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:
risk_type,evidence_spec. - Mutable only via 48h timelock (
propose_subaccord_update→execute_subaccord_update):min_stake,jurors_per_dispute,alpha_bps,review/commit/reveal_window,max_appeals,fee_per_juror,authority,evidence_operator. authority == Pubkey::default()⇒propose_subaccord_updatereverts withImmutableSubaccord.
accord::create_subaccord(
ctx,
risk_type, evidence_spec, staking_token, min_stake,
jurors_per_dispute, alpha_bps,
review_window, commit_window, reveal_window,
max_appeals, fee_per_juror,
authority, // Pubkey::default() => immutable
evidence_operator,
)?;
import { createSubaccord, findSubaccordPda } from "@accord/sdk";
const [subaccord] = await findSubaccordPda(
accord.PROGRAM_ID,
creator,
riskType, // 32-byte hash
);
await createSubaccord(accord.adapter, accord.PROGRAM_ID, {
creator,
riskType,
evidenceSpec,
stakingToken,
minStake,
jurorsPerDispute,
alphaBps,
reviewWindow,
commitWindow,
revealWindow,
maxAppeals,
feePerJuror,
authority,
evidenceOperator,
});
Why: ADR-0005. Param update flow: ADR-0005, instructions.