Skip to main content
MAIN CHAIN

On-Chain Transaction Reference

Elastos DAO Governance Transactions

Every governance action is a specific transaction type on the ELA main chain. These are enforced by consensus; no wallet, application, or node can bypass them.

RegisterCR (0x21): Register as Elastos Council Candidate

Registers a candidate for the Elastos Council election.

Payload: CRInfo

FieldTypeSizeDescription
Code[]byteVariableP-256 public key redemption script
CIDUint16821 bytesContract ID derived from code
DIDUint16821 bytesElastos DID identifier
NickNamestring≤ 100Display name
Urlstring≤ 100Information URL
Locationuint648 bytesCountry code
Signature[]byteVariableP-256 ECDSA signature

Validation rules (from blockchain/txvalidator.go):

  • CID must match the code's program hash
  • DID must be a valid Elastos DID
  • Nickname must be unique among active candidates
  • Deposit amount must meet the minimum threshold
  • Signature must be valid P-256

UnregisterCR (0x22): Withdraw Candidacy

Payload: UnregisterCR

FieldTypeDescription
CIDUint168Contract ID of the candidate
Signature[]byteSignature proving ownership

UpdateCR (0x23): Update Candidate Info

Same payload structure as RegisterCR. Used to update nickname, URL, location, or DID information while keeping the same CID.

ReturnCRDepositCoin (0x24): Reclaim Elastos Council Deposit

Returns the deposit ELA to the former candidate after the required waiting period.

CRCProposal (0x25): Submit Formal Proposal

See Proposal System for the full payload structure.

CRCProposalReview (0x26): Council Member Review

Payload: CRCProposalReview

FieldTypeDescription
ProposalHashUint256Hash of the proposal
VoteResultuint80 = approve, 1 = reject, 2 = abstain
OpinionHashUint256Hash of opinion document
OpinionData[]byteOpinion content (≤ 1MB)
DIDUint168Council member's DID
Signature[]byteP-256 signature

CRCProposalTracking (0x27): Track Proposal Progress

See Proposal System: Milestone Tracking for the full payload structure.

CRCAppropriation (0x28): Treasury Appropriation

Moves 10% of CR Assets to CR Expenses. This is a system transaction generated automatically by the chain; no user can create it manually.

Payload: CRCAppropriation (empty payload; the amount is calculated by the chain)

CRCProposalWithdraw (0x29): Request Fund Withdrawal

Payload: CRCProposalWithdraw

FieldTypeDescription
ProposalHashUint256Hash of the approved proposal
OwnerKey[]byteProposal owner's public key
RecipientUint168Destination address
AmountFixed64Amount to withdraw (in Sela)
Signature[]byteOwner's signature

CRCProposalRealWithdraw (0x2a): Execute Withdrawal

Payload: CRCProposalRealWithdraw

FieldTypeDescription
WithdrawTransactionHashes[]Uint256References to pending withdrawals

This is a system transaction that executes approved withdrawals. Fee: 10,000 Sela per withdrawal.

CRAssetsRectify (0x2b): Rectify CR Asset UTXOs

System transaction that consolidates and cleans up the CR Assets address's UTXOs. Fee: 10,000 Sela.

CRCouncilMemberClaimNode (0x31): Claim Validator Node

See Council Member Guide: Claiming a Validator Node for the full payload structure.

BPoS Validator Transactions

RegisterProducer (0x09): Register as BPoS Validator

See BPoS Voting: Validator Registration for the full payload structure.

CancelProducer (0x0a): Deregister Producer

Payload: ProcessProducer

FieldTypeDescription
OwnerKey[]byteProducer owner's public key
Signature[]byteSignature proving ownership

UpdateProducer (0x0b): Update Producer Info

Same payload as RegisterProducer. Updates any field except the owner key.

ReturnDepositCoin (0x0c): Reclaim Producer Deposit

Returns the producer deposit (2,000 ELA under BPoS; 5,000 ELA under legacy DPoS v1) after the required waiting period post-cancellation.

ActivateProducer (0x0d): Reactivate Producer

Payload: ActivateProducer

FieldTypeDescription
NodePublicKey[]byteProducer node's public key
Signature[]byteSignature proving ownership

Evidence and Penalty Transactions

TransactionCodePurpose
IllegalProposalEvidence0x0eReport a producer who made conflicting consensus proposals
IllegalVoteEvidence0x0fReport a producer who cast conflicting consensus votes
IllegalBlockEvidence0x10Report a producer who signed conflicting blocks
IllegalSidechainEvidence0x11Report sidechain misbehavior by a validator
InactiveArbitrators0x12System tx marking inactive validators
danger

These are permanent on-chain records. A producer found Illegal has 200 ELA deducted from their deposit but can re-register by posting a new one.

System Transactions

TransactionCodePurpose
CoinBase0x00Block reward distribution (30/35/35 split)
RevertToPOW0x41Emergency: revert to pure PoW consensus
RevertToDPOS0x42Restore BPoS consensus after PoW fallback
NextTurnDPOSInfo0x14Announce next round's validator set
ProposalResult0x15Record proposal outcome on-chain
RecordSponsor0x66Record block confirm sponsor

Quick Reference Tables

All Governance Transaction Types (Sorted by Code)

CodeNameCategoryInitiated By
0x00CoinBaseSystemChain (auto)
0x02TransferAssetTransferUsers (contains vote outputs)
0x09RegisterProducerBPoSProducer candidates
0x0aCancelProducerBPoSProducers
0x0bUpdateProducerBPoSProducers
0x0cReturnDepositCoinBPoSFormer producers
0x0dActivateProducerBPoSInactive producers
0x0eIllegalProposalEvidencePenaltyAnyone with evidence
0x0fIllegalVoteEvidencePenaltyAnyone with evidence
0x10IllegalBlockEvidencePenaltyAnyone with evidence
0x11IllegalSidechainEvidencePenaltyAnyone with evidence
0x12InactiveArbitratorsSystemChain (auto)
0x14NextTurnDPOSInfoSystemChain (auto)
0x15ProposalResultSystemChain (auto)
0x21RegisterCRElastos DAOElastos Council candidates
0x22UnregisterCRElastos DAOElastos Council candidates
0x23UpdateCRElastos DAOElastos Council candidates
0x24ReturnCRDepositCoinElastos DAOFormer Elastos Council members
0x25CRCProposalElastos DAOCouncil members
0x26CRCProposalReviewElastos DAOCouncil members
0x27CRCProposalTrackingElastos DAOProposal owners
0x28CRCAppropriationSystemChain (auto)
0x29CRCProposalWithdrawElastos DAOProposal owners
0x2aCRCProposalRealWithdrawSystemChain (auto)
0x2bCRAssetsRectifySystemChain (auto)
0x31CRCouncilMemberClaimNodeElastos DAOCouncil members
0x41RevertToPOWEmergencyChain (auto)
0x42RevertToDPOSEmergencyChain (auto)
0x60DposV2ClaimRewardBPoSVoters (pledged stake)
0x61DposV2ClaimRewardRealWithdrawSystemChain (auto)
0x62ExchangeVotesBPoSELA holders
0x63VotingBPoSELA holders
0x64ReturnVotesBPoSVoters
0x65VotesRealWithdrawSystemChain (auto)

All Governance RPC Methods

MethodCategoryDescription
listcrcandidatesElastos DAOAll Elastos Council candidates
listcurrentcrsElastos DAOCurrent council members
listnextcrsElastos DAONext term council members
listcrproposalbasestateElastos DAOProposal states
getcrproposalstateElastos DAOSpecific proposal state
getproposaldraftdataElastos DAOProposal draft document
getsecretarygeneralElastos DAOCurrent secretary general
getcrrelatedstageElastos DAOElastos Council voting/election stage
getcommitteecanuseamountElastos DAOAvailable Elastos DAO funds
getcrdepositcoinElastos DAOElastos Council member deposit info
listproducersBPoSAll registered validators
producerstatusBPoSValidator registration status
getarbitersinfoBPoSCurrent validator details
getarbiterpeersinfoBPoSDPoS P2P peer info
getarbitratorgroupbyheightBPoSValidators at specific height
votestatusBPoSVoting statistics
getdepositcoinBPoSValidator deposit info
getalldetaileddposv2votesBPoSDetailed vote info
getvoterightsBPoSVoter's rights by address
dposv2rewardinfoBPoSBPoS voter reward info
getdposv2infoBPoSBPoS system info
sendrawtransactionGeneralBroadcast signed transaction
createrawtransactionGeneralBuild unsigned transaction
signrawtransactionwithkeyGeneralSign transaction
listunspentUTXOList unspent outputs
getutxosbyamountUTXOFind UTXOs for spending

Elastos Council Proposal Type Codes

CodeTypeDescription
0x0000NormalStandard funding proposal
0x0100ELIPElastos Improvement Proposal
0x0101FLOWELIPProcess ELIP
0x0102INFOELIPInformational ELIP
0x0200MainChainUpgradeCodeMain chain upgrade
0x0201DIDUpgradeCodeDID chain upgrade
0x0202ETHUpgradeCodeESC chain upgrade
0x0400SecretaryGeneralSecretary General election
0x0401ChangeProposalOwnerTransfer proposal ownership
0x0402CloseProposalTerminate active proposal
0x0410RegisterSideChainRegister new sidechain
0x0500ReserveCustomIDReserve custom DID name
0x0501ReceiveCustomIDReceive custom DID name
0x0502ChangeCustomIDFeeChange custom ID fee