Skip to main content
MAIN CHAIN

Transaction Types

The ELA main chain supports 40+ transaction types beyond simple transfers. Each type has a unique hex code and carries a type-specific payload.

UTXO Model

The ELA main chain uses the UTXO model (like Bitcoin), not the account model used by Ethereum and ESC.

Base Transactions

CodeNameDescription
0x00CoinBaseBlock reward distribution
0x01RegisterAssetRegister a new asset type
0x02TransferAssetStandard ELA transfer
0x03RecordData recording on-chain
0x05SideChainPowSidechain PoW proof submission

Cross-Chain Transactions

CodeNameDescription
0x06RechargeToSideChainDeposit ELA to a sidechain
0x07WithdrawFromSideChainWithdraw ELA from a sidechain
0x08TransferCrossChainAssetCross-chain transfer (user-facing deposit tx)
0x2cReturnCrossChainDepositCoinReturn failed cross-chain deposits
0x51ReturnSideChainDepositCoinReturn failed sidechain deposits

BPoS Validator Transactions

CodeNameDescription
0x09RegisterProducerRegister as a BPoS validator (requires deposit)
0x0aCancelProducerCancel producer registration
0x0bUpdateProducerUpdate producer info (owner key, node key, URL)
0x0cReturnDepositCoinReclaim deposit after cancellation
0x0dActivateProducerRe-activate after inactivity

Illegal Evidence Transactions

CodeNameDescription
0x0eIllegalProposalEvidenceReport conflicting DPoS proposals
0x0fIllegalVoteEvidenceReport conflicting DPoS votes
0x10IllegalBlockEvidenceReport conflicting blocks
0x11IllegalSidechainEvidenceReport sidechain misbehavior
0x12InactiveArbitratorsMark inactive arbiters

Council (DAO) Transactions

CodeNameDescription
0x21RegisterCRRegister as Council candidate
0x22UnregisterCRUnregister candidacy
0x23UpdateCRUpdate Council member info
0x24ReturnCRDepositCoinReclaim Council deposit
0x25CRCProposalSubmit a governance proposal
0x26CRCProposalReviewCouncil member reviews a proposal
0x27CRCProposalTrackingTrack proposal milestone progress
0x28CRCAppropriationAppropriate funds from treasury
0x29CRCProposalWithdrawRequest fund withdrawal
0x2aCRCProposalRealWithdrawExecute fund transfer
0x2bCRAssetsRectifyRectify CR asset UTXOs
0x31CRCouncilMemberClaimNodeCouncil member claims DPoS node

System Transitions

CodeNameDescription
0x41RevertToPOWSwitch consensus to pure PoW
0x42RevertToDPOSRestore DPoS consensus

BPoS Staking Transactions

CodeNameDescription
0x60DposV2ClaimRewardClaim BPoS voter rewards
0x61DposV2ClaimRewardRealWithdrawExecute reward withdrawal
0x62ExchangeVotesConvert ELA to stake votes
0x63VotingCast BPoS votes with lock time
0x64ReturnVotesReturn staked votes
0x65VotesRealWithdrawExecute vote return

NFT Transactions

CodeNameDescription
0x71CreateNFTCreate NFT from staking position
0x72NFTDestroyFromSideChainDestroy NFT returning from sidechain

Transaction Structure

Every main chain transaction contains:

FieldDescription
VersionTransaction format version
TxTypeType code from the tables above
PayloadVersionVersion of the type-specific payload
PayloadType-specific data
InputsUTXO references being spent
OutputsNew UTXOs being created
LockTimeBlock height before which the tx cannot be mined
ProgramsSignature scripts proving input ownership

Resources