Vouching is how Poa lets a community decide, by peer review, who is ready to step into a role. Instead of "anyone can become an Officer" (too open) or "only the current Treasurer can grant Officer" (too centralized), you can say "Officer requires two existing Officers to vouch for the candidate." That is a vouch.
It is the kind of thing communities have always done informally. You ask around. Two trusted members say "yes, they're good." The new person is in. Poa just gives the same pattern a formal hook, so it can run by the community's own rules without a manual admin step.
Use vouching when:
Do not use vouching when:
Each role in your organization has its own vouching settings, independent of every other role. You set them in the deployment wizard at creation time. The community can change them later by vote. There are four fields:
What is not something you can set:
The Computer Science Co-op has a Project Lead role. Their setup:
They also require finishing the Project Lead Onboarding learning module before any vouches will count.
A candidate, Maya, finishes the module first. She can optionally register her candidacy so the existing Project Leads see her in a "pending" list, but it is not required. She asks two current Project Leads, Dani and Sam, to vouch. Each of them opens her profile and clicks "Vouch." One click each. The system records the vouch and bumps her count.
Once the second vouch lands, the system reports her count has reached the requirement. Maya then signs one more action herself to accept the role. The Project Lead role lands on her profile in the same step.
The candidate accepts the role. The vouchers express support. The candidate decides when to take the seat.
A voucher can take their vouch back before the candidate has accepted. The candidate's count drops by one. The original vouch is marked inactive in the public history (so you can audit it later), and it no longer counts.
If the candidate had just hit the required count and not yet accepted, they fall below the requirement until someone else vouches.
Once the candidate has accepted the role, vouches cannot be retroactively pulled to remove them. Removal after that is a regular admin or community-vote action on the role itself.
Vouches are permanent records. If Dani vouches for Maya, then later loses or gives up the Project Lead role, Dani's vouch for Maya still counts. The system checks the historical count when Maya accepts, not whether each voucher still holds their own role at that moment.
This is deliberate. You do not want a wave of departures to retroactively unmake decisions the community already made. If the community later decides someone should not be wearing a role, the path forward is a regular removal by the role's admin. Not retroactively invalidating the vouches.
Vouching is the most-used path, but each role can be set up differently. The platform supports any combination of these, per role:
Most organizations use a mix. The base Member role is open. One or two officer tiers are vouched. The Treasurer might start as admin-granted and convert to vouched later.
The eligibility logic (who can vouch, who can claim, the vouch counter, the on-or-off switch per role) is handled by a single open-source piece of Poa's protocol. Source at poa-box/POP, AGPL-3.0. Every vouch, every revoke, every claim is recorded on the blockchain, which is why the audit trail can show you who vouched for whom, when. The subgraph is what reads that history and renders the progress bars and candidate lists you see in the UI.
For the technical primitive that stores the roles themselves, see where roles live.