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
View JSON Schema on GitHub

JSON Schema

nano-block.json Raw ↑
{
  "$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
}