syntax = "proto3"; package nu.types; import "types/transaction.proto"; message BlockHeader { uint64 height = 1; string prev_block_hash = 2; // Hash256 int64 timestamp = 3; // Unix epoch milliseconds string validator_addr = 4; // Address bytes validator_sig = 5; // secp256k1 string tx_root = 6; // Merkle root of transactions string state_root = 7; // Merkle Patricia Trie root string receipts_root = 8; uint32 slot = 9; } message Block { BlockHeader header = 1; repeated Transaction transactions = 2; } message BlockReceipt { string tx_id = 1; bool success = 2; string error = 3; // empty if success uint64 gas_used = 4; }