MultiPartyChallenge is the strongest verification mechanism in Attesta. It requires two or more independent approvers, each completing a different sub-challenge, before a critical action is allowed to proceed. This prevents any single point of failure in the approval process.
When It Is Used
By default,MultiPartyChallenge is assigned to CRITICAL risk actions (score 0.8–1.0). These are irreversible, destructive operations like dropping databases, deleting production infrastructure, or purging user data.
| Parameter | Default | Description |
|---|---|---|
required_approvers | 2 | Number of independent approvers needed |
min_review_seconds | Inherited | Each sub-challenge uses its own minimum review time |
Sub-Challenge Rotation
Each approver receives a different sub-challenge, assigned in a rotating pattern:| Approver | Sub-Challenge | Min Review |
|---|---|---|
| 1st | TeachBackChallenge | 30.0s |
| 2nd | QuizChallenge | 10.0s |
| 3rd | ConfirmChallenge | 3.0s |
| 4th | TeachBackChallenge (rotation restarts) | 30.0s |
| 5th | QuizChallenge | 10.0s |
| … | … | … |
- The first approver must deeply understand the action (teach-back)
- The second approver must demonstrate comprehension (quiz)
- Subsequent approvers provide independent confirmation at lighter levels
- No two consecutive approvers face the same challenge type
All approvers must pass their respective sub-challenges. If any single approver fails or denies, the entire multi-party challenge fails and the action is blocked.
Usage
Approval Flow
When all approvers pass:| Stage | Approver 1 | Approver 2 |
|---|---|---|
| Action | drop_database("prod") — Risk: 0.92 (CRITICAL) | Same action context |
| Sub-challenge | Teach-Back (30.0s min) | Quiz (10.0s min) |
| Result | PASS | PASS |
| Outcome | ALL PASSED — Action Executes |
| Stage | Approver 1 | Approver 2 |
|---|---|---|
| Sub-challenge | Teach-Back | Quiz |
| Result | PASS | FAIL |
| Outcome | BLOCKED — AttestaDenied raised |
Approver Identity
Each approver is identified by anapprover_id, which is recorded in the audit trail. This enables post-hoc analysis of who approved what.
Terminal Experience
The TerminalRenderer presents multi-party challenges sequentially, showing progress: Approver 1 prompt (Teach-Back):CRITICAL RISK — Multi-Party Approval Required (Approvals: 0/2) Action:After the first approver passes (Quiz):drop_database| Arguments:database="production"| Risk: 0.92 (CRITICAL) APPROVER 1 — Teach-Back In your own words, explain what this action will do and what its impact will be. (minimum 15 words)
CRITICAL RISK — Multi-Party Approval Required (Approvals: 1/2) APPROVER 2 — Quiz Q1: Which database will be dropped? a) staging, b) production, c) development, d) testing
Configuration via YAML
attesta.yaml
Scaling Approvers by Domain
Domain profiles can override the number of required approvers for specific action types:attesta.yaml
TeachBackChallenge
The first sub-challenge in the rotation
Trust Engine
Why CRITICAL actions are never downgraded