Governance
A Pipoke community decides things through on-chain proposals. A member proposes, members vote, and the contract executes the outcome if the threshold passes. The whole loop is in PipokeCommunityShard. There is no off-chain Snapshot, no off-chain Discord poll.
Pipoke runs on Octra Devnet today. Any fee, price, or limit referred to here is a contract setting chosen for testing. Every one is owner-settable, and mainnet values will be different. These docs describe how the mechanics work, not what the numbers are.
#Proposal kinds (enum)
The shard recognises exactly nine kinds. The kind number is part of every proposal record.
| Kind | Number | Effect on execute |
|---|---|---|
SPEND |
1 | Pays POKE from the treasury to a target wallet. |
ADMIN_ADD |
2 | Adds a wallet to the admin set. |
ADMIN_REMOVE |
3 | Removes a wallet from the admin set. |
CREATOR_XFER |
4 | Transfers the founder/creator role to a new wallet. |
CAP |
5 | Updates a community-wide cap (post cap, subscription cap, slow-mode window). |
UNPAUSE |
6 | Lifts a community-wide pause. |
UNBAN |
7 | Reverses a ban on a member. |
MEMBER_REMOVE |
8 | Removes a member from the roster. |
THRESHOLD |
9 | Updates the N-of-M admin threshold. |
A proposal targets exactly one kind. The proposer fills in the params for that kind.
#The three-step on-chain flow
- Propose. A member calls
propose(kind, params, voting_window). The shard writes the proposal, setsACTIVE, opens the voting window. - Vote. Members call
vote(proposal_id, yes_or_no)during the window. Each vote is a signed tx. The shard counts as it goes. - Execute. After the window closes, anyone can call
execute(proposal_id). If the threshold passed, the contract atomically applies the action (spend, admin change, cap change). The same tx that flips status toEXECUTEDalso writes the side effect.
The execute step is atomic with the spend. The POKE only leaves the treasury inside the same transaction that confirms the threshold passed. There is no two-step "approved, will be paid out later" mode.
#The admin threshold
The community-wide threshold is N-of-M. N is the threshold, M is the admin set size. Default values are configured at create-time: threshold and admin_max. A THRESHOLD proposal can change N; an ADMIN_ADD / ADMIN_REMOVE proposal changes M.
Admin-only actions (kicks, locks, configuration changes that bypass the proposal flow) require N admin co-signatures collected through the same shard.
#Voting weight
Voting weight defaults to one-wallet-one-vote per community member. Roadmap variants (tier-weighted, time-weighted) are listed on the roadmap and not live.
#The 25% member veto
The Pipoke community model gives the membership a hard 25% veto on admin actions. If 25% of the membership votes against an admin action within the configured veto window, the action is blocked. This applies to MEMBER_REMOVE and UNBAN proposals.
#Admin removal
Admins are not immortal.
- A
THRESHOLDproposal can lower the admin threshold to make removing an admin easier. - A
MEMBER_REMOVEon an admin demotes them and removes them from the admin set. - A 48-hour admin-removal vote shows a banner at the top of the community while the vote is active.
#Audit trail
Every proposal, every vote, every execute is on chain. The Proposals tab in the community shows every proposal ever filed with the vote breakdown and the execution receipt linked to its on-chain tx.