Every organization on Poa is built on roles. Member. Officer. Treasurer. Reviewer. Steering Committee. Whatever titles your community needs. Roles decide who can see what, who can do what, and how much each person's vote counts when the community makes a decision.
You set this up in a few minutes when you create the organization. You can change it later through a community vote. Roles are designed to be durable. Once someone earns a role, no admin can quietly take it away. Removing a role goes through the same vote that granted it.
A role is a named tier with three things attached to it:
Roles can be hierarchical. A Treasurer role might be administered by a Steering Committee, which is itself administered by all members. This keeps power accountable. You can promote and demote, but only by the rules your community already agreed to.
Vouching is Poa's main tool for letting a community decide, by peer review, who is ready for a role. You set a number (say, two vouches). You pick which role's members can vouch (say, current Project Leads). The role grows by trust, not by an admin clicking a button.
The flow:
A few things that catch people by surprise:
Full configuration reference in vouching and trust.
Vouching is the most-used path, but it is one of several. Each role in your org can use any of these, independently or in combination:
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 through a community vote.
The Computer Science Co-op has 30 members and three roles:
When a member proposes "Allocate $500 from the treasury to a hackathon prize pool," the vote weighs equally across all Members. The co-op uses direct democracy for treasury decisions, so the Treasurer's vote does not count for more on this kind of question.
Six months in, a Member who has contributed 200 participation tokens and run two learning modules wants to become a Project Lead. They finish the onboarding module. They ask two existing Project Leads to vouch. Once both vouches land, they sign the acceptance. They are a Project Lead.
Tasks have their own four-permission set. It is applied per role per project:
| Permission | What it lets you do |
|---|---|
| Create | Open a new task in this project |
| Claim | Take an open task for yourself |
| Review | Approve or reject a submitted task |
| Assign | Hand a task to a specific member |
You set this up in a permission grid when you create the organization. Each role is a row. Each permission is a column. You tick the cells you want. Most orgs let Members claim and submit, and reserve review and assign for Officer-tier roles. The grid is yours to fill in.
For the full task lifecycle, see task manager.
Roles are stored on the blockchain through an open-source project called Hats Protocol. When a member tries to do something, the platform checks the on-chain record to see whether they have the right role. There is no admin database that could be edited behind the scenes. Every role change (granted, revoked, vouched-in) is logged and verifiable.
The Poa-side code that handles eligibility, vouching, and permission checks is open source under AGPL-3.0 at poa-box/POP. If you want the deeper technical view, see where roles live.