Nano · Schema
Nano State Block
Schema for a Nano universal state block (v1), which is the current block format for all transactions on the Nano network.
CryptocurrencyPaymentsBlockchainFeelessInstant PaymentsDigital Currency
Properties
| Name | Type | Description |
|---|---|---|
| type | string | Block type — always 'state' for universal blocks |
| account | string | The account that owns this block |
| previous | string | Hash of the previous block in this account's chain; all zeros for open blocks |
| representative | string | The voting representative for this account |
| balance | string | Account balance after this block in raw units |
| link | string | For send blocks: destination account public key; for receive blocks: hash of the send block being received; for change/epoch blocks: related hash or zero |
| link_as_account | string | Link field interpreted as an account address (send destination) |
| signature | string | Ed25519 signature of the block hash, signed by the account's private key |
| work | string | Proof-of-work nonce satisfying the difficulty threshold |
| subtype | string | Semantic subtype of the state block |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/nano/refs/heads/main/json-schema/nano-block.json",
"title": "Nano State Block",
"description": "Schema for a Nano universal state block (v1), which is the current block format for all transactions on the Nano network.",
"type": "object",
"required": ["type", "account", "previous", "representative", "balance", "link", "signature", "work"],
"properties": {
"type": {
"type": "string",
"enum": ["state"],
"description": "Block type — always 'state' for universal blocks"
},
"account": {
"type": "string",
"pattern": "^nano_[13][13456789abcdefghijkmnopqrstuwxyz]{59}$",
"description": "The account that owns this block"
},
"previous": {
"type": "string",
"pattern": "^[0-9A-F]{64}$",
"description": "Hash of the previous block in this account's chain; all zeros for open blocks"
},
"representative": {
"type": "string",
"pattern": "^nano_[13][13456789abcdefghijkmnopqrstuwxyz]{59}$",
"description": "The voting representative for this account"
},
"balance": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Account balance after this block in raw units"
},
"link": {
"type": "string",
"description": "For send blocks: destination account public key; for receive blocks: hash of the send block being received; for change/epoch blocks: related hash or zero"
},
"link_as_account": {
"type": "string",
"pattern": "^nano_[13][13456789abcdefghijkmnopqrstuwxyz]{59}$",
"description": "Link field interpreted as an account address (send destination)"
},
"signature": {
"type": "string",
"pattern": "^[0-9A-F]{128}$",
"description": "Ed25519 signature of the block hash, signed by the account's private key"
},
"work": {
"type": "string",
"pattern": "^[0-9A-Fa-f]{16}$",
"description": "Proof-of-work nonce satisfying the difficulty threshold"
},
"subtype": {
"type": "string",
"enum": ["send", "receive", "open", "change", "epoch"],
"description": "Semantic subtype of the state block"
}
},
"additionalProperties": false
}