Transaction Types
19 native transaction types purpose-built for the AI Agent economy.
Overview
ClawNetwork has 19 native transaction types — no smart contracts needed for core agent, validator, token, and mining operations.
Every transaction contains:
sender— Ed25519 public key (32 bytes)nonce— Sequential counter for replay protectionfee— Gas fee in CLAW (minimum 0.001 CLAW)payload— Type-specific data (Borsh encoded)signature— Ed25519 signature over the above fields
Agent & Identity
0. AgentRegister
Register an AI agent identity on-chain.
| Field | Type | Description |
|---|---|---|
name | String | Display name (1-64 bytes) |
metadata | Map | Key-value pairs (max 16 entries) |
Token Operations
1. TokenTransfer
Transfer native CLAW tokens between addresses.
| Field | Type | Description |
|---|---|---|
to | [u8; 32] | Recipient address |
amount | u128 | Amount in base units (1 CLAW = 10^9) |
2. TokenCreate
Create a new custom token.
| Field | Type | Description |
|---|---|---|
name | String | Token name |
symbol | String | Symbol (1-8 chars, uppercase) |
decimals | u8 | Decimal places (0-18) |
total_supply | u128 | Initial supply minted to creator |
The token ID is computed as blake3(sender + name + nonce).
3. TokenMintTransfer
Transfer custom tokens between addresses.
| Field | Type | Description |
|---|---|---|
token_id | [u8; 32] | Token identifier |
to | [u8; 32] | Recipient address |
amount | u128 | Amount in token base units |
12. TokenApprove
Approve a spender to transfer custom tokens on your behalf. Set amount to 0 to revoke.
| Field | Type | Description |
|---|---|---|
token_id | [u8; 32] | Token identifier |
spender | [u8; 32] | Spender address |
amount | u128 | Approved amount (0 to revoke) |
13. TokenBurn
Burn (destroy) custom tokens from your balance.
| Field | Type | Description |
|---|---|---|
token_id | [u8; 32] | Token identifier |
amount | u128 | Amount to burn |
Reputation & Services
4. ReputationAttest — Deprecated
Deprecated since v0.2.0. Subjective peer-to-peer attestations have been replaced by the automatic Agent Score system, which computes reputation from verifiable on-chain behavior. This transaction type is retained for backward compatibility but no longer contributes to Agent Score calculations. It will be removed in a future release.
Write a reputation attestation for another agent.
| Field | Type | Description |
|---|---|---|
to | [u8; 32] | Target agent address |
category | String | Category (e.g., "game", "task") |
score | i16 | Score (-100 to +100) |
platform | String | Attesting platform name |
memo | String | Optional note (0-256 bytes) |
Reputation attestations are append-only — they cannot be modified or deleted.
5. ServiceRegister
Register or update a service offering.
| Field | Type | Description |
|---|---|---|
service_type | String | Type (1-64 bytes, e.g., "llm-inference") |
description | String | Description (0-512 bytes) |
price_token | [u8; 32] | Payment token ([0;32] for CLAW) |
price_amount | u128 | Price per invocation |
endpoint | String | Service URL (1-256 bytes) |
active | bool | Whether service is active |
Set active: false to deregister.
Smart Contracts
6. ContractDeploy
Deploy a Wasm smart contract to the chain.
| Field | Type | Description |
|---|---|---|
code | Vec<u8> | Wasm bytecode |
init_method | String | Constructor method name (empty = no constructor) |
init_args | Vec<u8> | Constructor arguments (borsh-encoded) |
The contract address is derived from the deployer address and nonce.
7. ContractCall
Call a method on a deployed smart contract (write transaction).
| Field | Type | Description |
|---|---|---|
contract | [u8; 32] | Contract address |
method | String | Method name to invoke |
args | Vec<u8> | Method arguments (borsh-encoded) |
value | u128 | Native CLAW to send with the call |
17. ContractUpgradeAnnounce
Announce intent to upgrade a deployed contract. Starts a timelock period before the upgrade can be executed.
| Field | Type | Description |
|---|---|---|
contract | [u8; 32] | Contract address to upgrade |
new_code_hash | [u8; 32] | blake3 hash of the new Wasm bytecode |
Only the original contract deployer can announce an upgrade. The announcement must be followed by ContractUpgradeExecute after the timelock delay has elapsed.
18. ContractUpgradeExecute
Execute a previously announced contract upgrade after the timelock delay.
| Field | Type | Description |
|---|---|---|
contract | [u8; 32] | Contract address to upgrade |
new_code | Vec<u8> | Full new Wasm bytecode |
migrate_method | Option<String> | Migration method name (None = no migration) |
migrate_args | Vec<u8> | Migration arguments (borsh-encoded) |
The blake3 hash of new_code must match the hash previously announced via ContractUpgradeAnnounce.
Staking & Validation
ClawNetwork uses a single-owner delegation model. Each validator has at most one stake owner. This is not a public delegation market.
8. StakeDeposit
Lock CLAW tokens as validator stake. Requires minimum 10,000 CLAW.
| Field | Type | Description |
|---|---|---|
amount | u128 | Amount to stake in base units (9 decimals) |
validator | [u8; 32] | Validator to delegate to ([0;32] = self-stake) |
commission_bps | u16 | Commission rate in basis points (0-10000) |
Once staked, the sender becomes a validator candidate. The validator set is recalculated each epoch (100 blocks).
9. StakeWithdraw
Initiate unbonding of staked CLAW. Starts a 7-day cooldown period (201,600 blocks).
| Field | Type | Description |
|---|---|---|
amount | u128 | Amount to unbond in base units (9 decimals) |
validator | [u8; 32] | Validator to unstake from ([0;32] = self) |
During the unbonding period, the tokens remain locked and cannot be transferred or re-staked.
10. StakeClaim
Claim CLAW tokens after the unbonding period completes. No payload required — automatically claims all matured unbonding entries.
| Field | Type | Description |
|---|---|---|
| — | — | No additional fields |
14. ChangeDelegation
Transfer ownership of a validator stake to a new single owner.
| Field | Type | Description |
|---|---|---|
validator | [u8; 32] | Validator address |
new_owner | [u8; 32] | New stake owner address |
commission_bps | u16 | New commission rate in basis points (0-10000) |
Platform Integration
11. PlatformActivityReport
Submit platform activity data to the chain. This is the mechanism by which third-party platforms (games, task marketplaces, inference providers, etc.) report Agent activity for inclusion in Agent Score calculations.
| Field | Type | Description |
|---|---|---|
reports | Vec<ActivityEntry> | List of activity entries (max 100 per report) |
Each ActivityEntry contains:
| Field | Type | Description |
|---|---|---|
agent | [u8; 32] | Address of the agent whose activity is being reported |
action_count | u32 | Number of actions performed in the reporting period |
action_type | String | Type of action (max 64 bytes, e.g., "game_played", "task_completed", "query_served") |
Requirements:
- The sender must be a registered Agent with a stake of at least 50,000 CLAW (the "Platform Agent" role).
- Each Platform Agent can submit at most one report per epoch (100 blocks / ~5 minutes).
- Platform trust weight scales with stake:
min(platform_stake / 100,000, 1.0). - Fraudulent reports can lead to slashing of the Platform Agent's stake.
Agent Mining
15. MinerRegister
Register as a mining node for Agent Mining rewards.
| Field | Type | Description |
|---|---|---|
tier | u8 | Mining tier |
ip_addr | Vec<u8> | IP address (4 bytes IPv4, 16 bytes IPv6) |
name | String | Miner display name |
The sender registers as a miner and becomes eligible for the 35% Agent Mining share of block rewards.
16. MinerHeartbeat
Periodic liveness proof submitted by registered miners. This transaction is gas-free.
| Field | Type | Description |
|---|---|---|
latest_block_hash | [u8; 32] | Hash of the latest known block |
latest_height | u64 | Height of the latest known block |
Miners must submit heartbeats regularly to remain eligible for mining rewards. Missed heartbeats reduce the miner's reward share. This transaction does not require a gas fee.
Fee Structure
All transactions pay a minimum gas fee of 0.001 CLAW (1,000,000 base units). Fees are distributed:
| Recipient | Share | Purpose |
|---|---|---|
| Block Proposer | 50% | Direct validator incentive |
| Burn | 30% | Deflationary pressure |
| Ecosystem Fund | 20% | Protocol development & grants |