Transaction Format
Transactions in the Anemos consist of the following fields:
| Field | Size |
|---|---|
| Flags | 1 byte |
| Version | 1 byte |
| Lock Time | 4 bytes |
| Fee | Variant |
| Memo | Variant |
| Payload Type | 1 byte |
| Payload Data | Variant |
| Signature | Variant |
| Public Key | Variant |
- Flags A flag is a bitfield that indicates how to decode the transaction data.
- Version is the version of the transaction format. Different versions may have different fields or a different layout, and the current transaction version is set to 1.
- Lock Time specifies the block number at which the transaction can be unlocked.
- Fee contains the fee paid by the sender to the network for processing the transaction.
- Memo is an optional message that can be included in the transaction. The message can be used to provide additional information about the transaction or to communicate with the recipient. The maximum size of the memo is 64 characters that is defined in the consensus parameters
- Payload Type specifies the type of the transaction payload. Depending on the payload type, the payload data field is decoded differently.
- Payload Data contains the actual data payload of the transaction. The payload data varies depending on the payload type.
- Signature contains a cryptographic signature created by the sender using their private key. The signature is used to ensure that the transaction has not been tampered with and that it was indeed created by the sender.
- Public Key contains the public key of the sender. The public key is used to verify that the sender has the authority to create the transaction. The sender’s address should be derived from this public key.
Payload Type
The payload type field determines the format of the payload data field in the transaction.
Different payload types have different formats for the payload data.
The following are the supported transactions in the Anemos blockchain. The taxonomy is 11 contiguous
types (1–11), with no reserved gaps — the numbering is dense, and any future type would
simply append at 12. Types 1–6 are the core Pactus-inherited payloads (extended by Anemos), type 7 is
the native stablecoin Convert payload, type 8 is the protocol-only
Coinbase block-reward mint, and types 9–11 are the pooled-delegation payloads
(Delegate / Undelegate / ClaimReward).
There is no price-attestation transaction — the oracle price rides in the block’s OracleData
section, not in a transaction.
| Type | Transaction | Notes |
|---|---|---|
| 1 | Transfer | unified multi-asset transfer (ANM / USD / RC, selected by an asset enum) |
| 2 | Bond | bond stake to a validator (also how a pool operator registers/tops up) |
| 3 | Sortition | join the committee via VRF sortition |
| 4 | Unbond | optional Amount: 0 = full unbond, >0 = partial unbond |
| 5 | Withdraw | withdraw unbonded stake to an account |
| 6 | Batch Transfer | user-facing one-to-many ANM transfer (debits the sender) — it can never mint |
| 7 | Convert | unified stablecoin conversion (mint/redeem stable, reserve equity, recovery; selected by an op enum) |
| 8 | Coinbase | the protocol-only block-reward mint (no real sender, internal-only, never user-submittable) — the chain’s only minting path |
| 9 | Delegate | deposit ANM principal into an operator’s validator pool (mints principal shares) |
| 10 | Undelegate | burn principal shares and park the principal in a slashable pending-unbond entry |
| 11 | Claim Reward | claim a delegation position’s slash-immune accrued rewards (anytime) |
Flags
- 0x01 Indicates that the public key is known and excluded from the transaction.
- 0x02 Indicates that the transaction is not signed yet.
Transaction ID
The Transaction ID is a unique identifier for a transaction on the blockchain. It is generated by taking the hash of the transaction data without including the public key and signature fields.