Right in your favourite Telegram group.
Protean brings programmable, on-chain governance into Telegram, Discord, Slack, and WhatsApp, the places your community already coordinates. Eleven mechanisms, one treasury, swap models without ever moving funds.
A DAO is created and run entirely from inside the chat, with no separate dashboard to log into.
One command deploys a treasury, a governance token, and your chosen model, directly in the group.
Ten governance mechanisms plus a confidential market, from simple multisig to quadratic and conviction voting.
Every step happens as a normal message in the chat everyone's already in.
Outgrow a model later? Change it. The treasury never moves.
The ten share the same propose → vote → queue → execute shape. Opportunity Market is a distinct primitive, with no proposals or votes: a fully confidential prediction market instead.
Five shapes Protean already fits, each with its own tools on top of the same governance layer.
Add Protean to the platform your community already lives in.
Try Protean on WhatsApp. This bot is early, so expect rough edges.
Message on WhatsAppGovernance runs on ultra-cheap EVMs, with Solana programs live on devnet and NEAR contracts live on testnet. The confidential Opportunity Market runs wherever Zama's coprocessor network actually exists today.
Protean is the governance layer for social messengers: programmable, on-chain governance mechanisms brought directly into Telegram, Discord, Slack, and WhatsApp (experimental).
Instead of forcing every community into the same governance model, Protean provides modular governance primitives that deploy directly inside the chat a community already uses. A DAO's treasury and its voting logic are deliberately separate, so a group can change how it decides things without ever migrating funds.
Communities are usually stuck choosing between two broken options. Web2 tools make collective ownership difficult, with no safe way to pool or spend group money inside a chat app. Web3 frameworks force people out of the chat onto a separate site, with a treasury permanently welded to one voting contract, so changing your mind about governance means a risky, expensive fund migration.
Governance runs directly inside the chat a community already uses, with no separate site and no new habit to build. Because the treasury and the voting logic are kept apart, a community can change how it governs as it evolves, for example moving from a simple multisig to quadratic voting later, without ever touching the funds.
A passed proposal can already execute real onchain actions atomically through Protean's verified action library, reaching Treasury, tokens, and connected wrappers in one approved step. The planned offchain counterpart is a compliant banking tool that executes a payment the moment a DAO approves it, with no separate manual step required. Optional legal wrappers, such as a Wyoming DUNA or a Marshall Islands DAO LLC, are also available for communities that need real-world legal standing for their onchain treasury.
Four parts: the governance contracts (EVM, Solana and NEAR), the bot interfaces, and this site.
Every DAO gets its own, fully separate contract deployment: a real Governance contract, a real Treasury, a real governance token. Nothing is a shared proxy; each community's DAO is independent from every other.
Two optional wrapper contracts sit alongside a DAO: an NFT marketplace wrapper for on-chain trading, and a Guard Wrapper, a security-council layer that can inspect and confirm sensitive treasury or token actions before they execute.
All ten share the same propose → vote → queue → execute shape.
The baseline model. Voting power is read from a snapshot at proposal creation, weighted by balance.
Same shape as token-weighted, but voting power scales with the square root of tokens held, reducing the influence of the largest holders relative to the wider group.
Token-weighted voting with delegation. A holder can hand their voting power to someone else, and reclaim it at any time.
A proposal passes automatically once its challenge window closes, unless someone challenges it, in which case it goes to a real vote. Built for routine actions that shouldn't need a full vote cycle every time.
No discrete "for/against" vote. A holder commits their current stake to a proposal, and their conviction accumulates the longer it stays committed, rewarding sustained, patient support over a single burst of votes.
A signer multisig. No governance token at all: a fixed set of signers confirms transactions directly, with a configurable approval threshold.
A council selected at random from eligible members via an external randomness source, serving fixed terms, governance by lottery rather than election or stake.
A council elected by ordinary token-holder vote, serving fixed terms before a new election reopens.
A two-phase model: proposals first go through an approval phase, and disputed outcomes move to an adjudication phase, with optional resolution against a live Chainlink or Switchboard price feed.
Futarchy. Two prediction markets are opened for a proposal, one betting it will pass and one betting it will fail, and the outcome is decided by comparing their time-weighted average price. No voting step exists in this model at all.
A confidential prediction market, a distinct primitive, not a twin of the ten governance models above.
Opportunity Market has no proposals and no votes. Its lifecycle is: list an opportunity, place fully encrypted bets on which one will succeed, resolve the outcome, then reveal only the winning opportunity and its aggregate backing total. Individual bets and positions are never revealed, even after resolution. Built on Zama's confidential compute stack, currently deployed on Ethereum Sepolia, since that's where Zama's coprocessor network exists today. It moves to other chains as Zama's network expands to them.
The actual states and commands each of the eleven modules moves through, from proposal to finished outcome.
All three share this same eight-state shape (also including Cancelled and Expired). The only real difference between them is how voting power is counted: Token-weighted uses a raw balance snapshot, Quadratic uses the square root of that balance, and Liquid adds delegate() / undelegate(), letting a holder hand their vote to someone else and have it resolve down a full delegation chain.
The one model that starts in a different state than every other: ChallengeWindow, not Pending. A proposal passes automatically once that window closes unless someone calls challenge(), which is the only point a real token-weighted vote (Active) ever happens here.
No discrete vote at all, vote() isn't used here. A holder commits their current stake with support(), and conviction accumulates the longer that stake stays committed. withdrawSupport() pulls it back at any time.
The only model with no token and no separate queue step at all, confirming a proposal automatically queues it the moment the required threshold is reached. It's also the only model that can move backward: revoking a confirmation below threshold un-queues a proposal that had already qualified.
Council selection has no election at all. Eligible token holders opt into a pool, and the council is drawn from that pool by a verifiable random shuffle against an external randomness source. Once seated, anyone meeting the eligibility threshold (not just council members) can propose; only the council actually votes, by headcount, not token weight.
Three separate mechanisms on one contract: an election open to every token holder (token-weighted), council proposals restricted to sitting council members only (headcount-weighted), and a separate recall vote, also open to every holder, that can remove a council member early before their term ends.
A proposal first passes a token-weighted approval vote, then opens for people to takePosition() on its real-world outcome. Resolution can come automatically from a live oracle, or from a human proposing an outcome that others can challenge into a second, adjudication vote. claimPosition() only pays out once the outcome is final.
No vote of any kind exists on this contract. Proposing seeds two live trading markets, pass and fail, and people trade whichever side they believe in. finalizeProposal() simply compares the two markets' time-weighted average price. Pass must exceed fail's by a configured margin, that comparison alone is the entire verdict.
No proposals, no votes, not a governance model at all. A deployer lists one or more opportunities; bettors fund a confidential balance and place fully encrypted bets with back(). Once the deployer calls resolve(), only the winning opportunity's aggregate total is ever revealed, individual bets and positions never are, even after everyone has been paid out.
An optional security layer a DAO can adopt without changing its governance model at all.
A Guard Wrapper sits between governance and a DAO's treasury or token contract. Governance can propose an instruction to it, but a small set of signers must confirm before it actually executes, giving a DAO a human circuit-breaker against a malicious or mistaken proposal, without giving those signers any power to act on their own. Signers can only confirm or reject what governance already sent; they can never initiate a transaction themselves.
The full command set. Which ones apply depends on your DAO's governance model: a Board DAO doesn't have /stake, a Delegate DAO doesn't have /support, and so on.
| Command | What it does |
|---|---|
/createdao | Deploys a new DAO, with a treasury, token, and your chosen governance model, directly in this chat. |
/propose | Creates a new proposal for the linked DAO to vote on. |
/vote | Casts a vote on an open proposal (token-weighted, quadratic, liquid, optimistic, delegate). |
/queue | Moves a passed proposal into its execution timelock. |
/execute | Executes a proposal once its timelock has elapsed. |
/cancel | Cancels a proposal before it executes. |
/proposal | Shows a proposal's current state, votes, and timing. |
/stake | Stakes tokens to activate voting power. |
/unstake | Withdraws staked tokens. |
/wallet | Shows your chat-linked wallet address and balance. |
/claim | Claims welcome tokens or amounts owed to you. |
/help | Shows every command available in this specific chat. |
| Command | Model | What it does |
|---|---|---|
/support | Conviction | Commits your current stake to a proposal, accumulating conviction over time. |
/confirmtransaction | Board | A signer confirms a proposed transaction. |
/addsigner / /removesigner | Board | Adds or removes a signer, only via a passed proposal. |
/castcouncilvote | Sortition | A randomly-selected council member votes on a proposal. |
/voteinelection | Delegate | Votes for candidates in a council election. |
/declarecandidacy | Delegate | Declares your candidacy for an open council election. |
/finalizeelection | Delegate | Finalizes an election once its voting window closes. |
/proposecriteria | Sowellian | Creates a proposal with oracle-based or human-judged resolution criteria. |
/castapprovalvote | Sowellian | Votes in a proposal's approval phase. |
/castadjudicationvote | Sowellian | Votes in a disputed proposal's adjudication phase. |
/deploychainlinkoracle | Sowellian | Deploys a price-feed adapter for oracle-based resolution. |
/trade | Decision Markets | Trades in a proposal's pass or fail prediction market. |
/finalizeproposal | Decision Markets | Resolves a proposal by comparing its two markets' time-weighted price. |
| Command | What it does |
|---|---|
/listactions | Shows every verified action this DAO can propose. |
/proposeaction | Proposes a verified action without hand-building calldata yourself. |
| Command | What it does |
|---|---|
/deploynftwrapper | Deploys an NFT marketplace wrapper for this DAO. |
/deployguardwrapper | Deploys a Guard Wrapper (a signer-confirmed security layer) for this DAO. |
/registerguardwrapper | Links an already-deployed Guard Wrapper to this chat. |
/handovertowrapper | Computes the proposals that hand Treasury and token control to a Guard Wrapper. |
/guardwrapper | Shows a wrapper's current signers, threshold, and tenure status. |
/instruction | Shows full detail on a pending or resolved wrapper instruction. |
/confirminstruction | A signer confirms a pending wrapper instruction. |
/rejectinstruction | A signer permanently cancels a pending wrapper instruction. |
/revokeconfirmation | A signer withdraws their own earlier confirmation. |
| Command | What it does |
|---|---|
/createmarket | Deploys a new confidential Opportunity Market. |
/registermarket | Links an already-deployed market to this chat. |
/deposit | Deposits underlying tokens into your confidential balance. |
/listopportunity | Lists a new opportunity for the market. |
/back | Places a fully encrypted bet on an opportunity. |
/resolve | Records which opportunity won, in plaintext. |
/revealwinningtotal | Reveals the winning opportunity's total backing. |
/computereward | Computes your share of the reward pool. |
/withdraw / /withdrawreward | Withdraws your stake or your computed reward. |
/mybalance / /mybet / /allbets | Shows your confidential balance, one bet's detail, or all your bets. |
/analytics | Deployer-only aggregate stats per opportunity. |
Governance runs on ultra-cheap EVMs, on Solana (devnet) and on NEAR (testnet); Opportunity Market runs wherever Zama's coprocessor network exists today.
All ten governance factories, plus their Pyth adapters, are live and verifiable on MonadVision, Monad's official block explorer.
| Contract | Address |
|---|---|
| Token-weighted | 0x1E74...8f8b |
| Quadratic | 0x8318...7F26 |
| Liquid | 0xC9D5...267c |
| Optimistic | 0x24c4...7B82 |
| Delegate | 0xCd38...3a25 |
| Board | 0xdB64...ee1e |
| Sortition | 0x1183...09a0 |
| Conviction | 0x9447...a9aA |
| Sowellian | 0x5d61...5b71 |
| Decision Markets | 0xafa0...034C |
| Pyth Entropy adapter (Sortition) | 0x422c...b92D |
| Pyth price adapter (Sowellian) | 0x6C58...949e |
All ten governance factories, plus their Pyth adapters, are live and verifiable on Basescan, the block explorer for Base Sepolia.
| Contract | Address |
|---|---|
| Token-weighted | 0xE7C0...309d |
| Quadratic | 0xF33D...e22c |
| Liquid | 0x68cf...cC02 |
| Optimistic | 0x5d7C...8B28 |
| Delegate | 0xfa41...d311 |
| Board | 0x4145...6E18 |
| Sortition | 0x3767...d016 |
| Conviction | 0x05Ad...9c73 |
| Sowellian | 0xf9B5...7e2B |
| Decision Markets | 0x0374...6d86 |
| Pyth Entropy adapter (Sortition) | 0xaB73...B1Fc |
| Pyth price adapter (Sowellian) | 0x9d10...78F9 |
All ten governance factories, plus their Pyth adapters, are live and verifiable on the HyperEVM testnet explorer.
| Contract | Address |
|---|---|
| Token-weighted | 0xa1Fa...2C85 |
| Quadratic | 0xdDc6...1d90 |
| Liquid | 0xaBAc...5020 |
| Optimistic | 0x9E42...8fb6 |
| Delegate | 0x3D1F...d8b2 |
| Board | 0x69f2...30BC |
| Sortition | 0x413C...aC2e |
| Conviction | 0x382e...3dBb |
| Sowellian | 0x485A...85aF |
| Decision Markets | 0x2f6C...2478 |
| Pyth Entropy adapter (Sortition) | 0xeEdE...3BD3 |
| Pyth price adapter (Sowellian) | 0x8018...6dAf |
The Opportunity Market factory is live and verifiable on Etherscan.
| Contract | Address |
|---|---|
| OpportunityMarketFactory | 0xE9fF...4625 |
Governance programs for Solana are deployed on devnet and can be inspected on the Solana Explorer. A shared hub program sits alongside all ten governance models.
| Program | Address |
|---|---|
| vortex-hub | 5m9N...xMKe |
| vortex-token-weighted | Hf9M...ikV8 |
| vortex-quadratic | ES1U...i3tR |
| vortex-liquid | CMf1...du1W |
| vortex-optimistic | Bjcf...PpdX |
| vortex-delegate | 6TVZ...Uvk2 |
| vortex-board | 9yER...oXZE |
| vortex-sortition | FjuZ...p6U5 |
| vortex-conviction | 9sxW...xrWQ |
| vortex-sowellian | G99Y...srx2 |
| vortex-decision-markets | FfUP...5t4S |
On NEAR, governance is built as Orbits: one governance module per model, each acting as the only member of a Sputnik DAO that holds the treasury. The modules, the staking contract and the token are published once as NEAR global contracts and shared by every DAO, so they are identified by code hash and not by a contract address. A DAO's own accounts have no access keys and run exactly this code. The board model needs no orbit: it is Sputnik's own multisig. The hashes below are read from orbits/deployments/testnet.json in the protean-near repo.
| Contract | Code hash (base58) |
|---|---|
| Token-weighted orbit | 2y2w94Kk4QpkgxBTM59Doji4sh9uzfqKSb7kPU8J8zcf |
| Quadratic orbit | 8YGXDXMxooQo4MY8gvEB9zLMQ13uVjCNaBFVG8Hk3P4D |
| Liquid orbit | K2x1JannFBEN6H5vrqXPpn2rWXNt3bQFPXYwRN1xTmH |
| Optimistic orbit | 8U1h1FjJf8q4WynEssacvjyK3dfJmxeZfBWRfR4jJpzQ |
| Conviction orbit | BZgs5oFbEN8T4ZRwVJ2chamVuznitABm8ZFgB6kbAdX6 |
| Delegate orbit | HPvSUiDXZsDcBE511oR5xBzW3rm9TWtf8pgsGMPbjFsS |
| Sortition orbit | 8CrjonQBLYSXVhpp2g8KSAAiyDaTWDn3ENUDMd7jdKGx |
| Sowellian orbit | DeoBfxibLsvt2ssMGV28N65Ncq7ax182q9xKoUp79fv1 |
| Decision Markets orbit | rULMrsgwYJ9j1aB72sqijnF8eLRcmpz94kMGx7U1sxJ |
| Staking (one per DAO) | 5VuyqRFFsrwbMByjVR9CVNCwPqdAKdZHu4mZoJuhhxcj |
| Governance token (NEP-141) | E7sPCuzLdZhno4Y1mEKXnwHeGXcVX3mzScCcy8LAdUBV |
Each DAO gets its own accounts. A DAO called ark running token-weighted governance would have:
| Account | Role |
|---|---|
ark.sputnik.protean.testnet | The core and treasury (Sputnik DAO) |
token.ark.protean.testnet | The DAO's token |
staking.ark.protean.testnet | Stakes and their history |
tw.ark.protean.testnet | The orbit: tw token-weighted, qv quadratic, lq liquid, op optimistic, cv conviction, dg delegate, st sortition, sw Sowellian, dm decision markets |