Proposal System
Proposals are how changes get funded and enacted in Elastos. Any community member can submit a proposal, but it must be co-signed by a Council member to go on-chain. Approved proposals draw funds from the DAO Treasury.
Proposal Types
| Category | Type | Code | What it does |
|---|---|---|---|
| Funding | Normal | 0x0000 | Request ELA from the treasury for a project |
| Protocol | ELIP | 0x0100 | Elastos Improvement Proposal — protocol-level change |
| FLOWELIP | 0x0101 | Change to governance processes | |
| INFOELIP | 0x0102 | Informational / design documentation | |
| Chain Upgrades | MainChainUpgradeCode | 0x0200 | ELA main chain code upgrade |
| DIDUpgradeCode | 0x0201 | EID sidechain code upgrade | |
| ETHUpgradeCode | 0x0202 | ESC sidechain code upgrade | |
| Administrative | SecretaryGeneral | 0x0400 | Elect a new Secretary General |
| ChangeProposalOwner | 0x0401 | Transfer proposal ownership | |
| CloseProposal | 0x0402 | Terminate an active proposal | |
| RegisterSideChain | 0x0410 | Register a new sidechain | |
| Custom DID | ReserveCustomID | 0x0500 | Reserve a custom DID name |
| ReceiveCustomID | 0x0501 | Receive a reserved custom DID | |
| ChangeCustomIDFee | 0x0502 | Change the custom ID fee rate |
Proposal Lifecycle
Every proposal follows this path from submission to completion (or rejection):
Key stages:
- Registered — Proposal submitted on-chain (tx type
0x25), co-signed by a Council member - CRC Review — The 12 Council members vote (7-day window). Requires majority to pass
- Community Review — 7-day public veto period. Token holders can vote against. If opposition exceeds the veto threshold, the proposal is vetoed
- Tracking — Milestones are executed, progress is reported, and funds are released per budget stage
- Finished / Terminated — Proposal completes all milestones or is terminated early
Budget Structure
Each funding proposal includes a multi-stage budget. Funds are released per milestone, not all at once.
| Payment Type | When | Use case |
|---|---|---|
| Imprest | Before work begins | Upfront capital for the team to start |
| NormalPayment | After milestone approval | Released when a milestone is verified |
| FinalPayment | After full completion | Released when the project is finished |
All amounts are denominated in sela (1 ELA = 100,000,000 sela).
Milestone Tracking
Each milestone in a proposal has its own lifecycle:
Progress is reported on-chain via a CRCProposalTracking transaction (type 0x27), which includes the milestone stage, a progress message, and co-signatures from the proposal owner and Secretary General.
ELIP Workflow
ELIPs (Elastos Improvement Proposals) follow a more rigorous path than standard funding proposals since they affect the protocol itself:
ELIPs come in three types:
- Standard Track — changes to the protocol (requires code upgrade proposal)
- Process — changes to governance procedures
- Informational — design documentation, no code change
Once an ELIP is approved, it becomes an on-chain proposal using the appropriate upgrade type (MainChainUpgradeCode, DIDUpgradeCode, or ETHUpgradeCode).
Fund Withdrawal
When a milestone is approved, funds are released in two on-chain steps:
| Step | Transaction Type | What happens |
|---|---|---|
| 1. Request | CRCProposalWithdraw (0x29) | Owner requests withdrawal for the approved milestone |
| 2. Execute | CRCProposalRealWithdraw (0x2a) | ELA transferred from CREXPENSES... to the recipient address |
Withdrawal fee: 10,000 sela (0.0001 ELA) per withdrawal.
On-Chain Transaction Reference
| Transaction | Type Code | Purpose |
|---|---|---|
| CRCProposal | 0x25 | Submit a new proposal |
| CRCProposalReview | 0x26 | Council member votes on a proposal |
| CRCProposalTracking | 0x27 | Report milestone progress |
| CRCProposalWithdraw | 0x29 | Request fund withdrawal |
| CRCProposalRealWithdraw | 0x2a | Execute fund transfer |
For the full transaction type list, see Transaction Reference.