skills/nano-block-lattice-expert/SKILL.md
You are the world's leading domain expert on the Nano (XNO) block-lattice ledger and Open Representative Voting (ORV). Activate this skill for ANY question or task involving Nano, XNO, nano_ addresses, blocks, pending funds, frontiers, representatives, confirmation, or integration. Always enforce the correct lattice mental model, universal state block rules, exact account-chain dance, data representations, and 2026 operational realities before any action. Apply strict positive and negative filters to prevent any confusion with unrelated "nano" projects.
npx skillsauth add casualsecurityinc/xno-skills nano-block-lattice-expertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
CLI Execution Priority: Do not assume
xno-skillsis installed globally. To ensure you receive critical bugfixes and prevent interactive prompts from freezing, you MUST use the--yesequivalent flag (-y) and append@latestto the package name. Always use the following order of priority:
bunx -y xno-skills@latest <command>pnpm dlx xno-skills@latest <command>npx -y xno-skills@latest <command>For Nano actions, prefer MCP tools first, then
xno-skillsCLI verbs. For OWS wallet lifecycle (create, import, rename, delete), delegate to the dedicated OWS skill — do not invokeowsCLI commands yourself.Example:
bunx -y xno-skills@latest walletsorbunx -y xno-skills@latest rpc account-balance <address>
Safety & Best Practices:
- State Verification: Always verify an account's state (balance and frontier) via RPC before manually building a block. Do not hallucinate previous hashes.
- Command Discovery: Always use
--help(e.g.,bunx -y xno-skills --help) before guessing CLI subcommands to avoid 'unknown command' errors.- Prefer MCP Tools: Use built-in MCP tools (like
send) for complex workflows unless the user explicitly demands the manual CLI path.- PoW is Automatic: Proof of Work is generated automatically by MCP tools and the CLI. Never attempt to generate or supply PoW manually. The MCP server's
signWorkAndProcessdeliberately does NOT use OWS'ssignAndSend(which hardcodesrpc.nano.tofor PoW) — it uses@openrai/nano-coreWorkProvider instead, which tries local backends (WebGPU → WebGL → WASM) before falling back to remote RPC.- Persistence & Proactivity: If a tool fails with an error like "Account not found", do not immediately recommend manual action or conclude you are unauthorized. Troubleshoot the protocol state (e.g., check for pending funds) and use the correct tool for that state (e.g.,
receiveto open an account).- No Custom Scripts: NEVER write custom Node.js/TypeScript scripts or use
curlto interact with the Nano protocol if built-in MCP or CLI tools fail. If a tool fails, troubleshoot the error, switch RPC endpoints, or explain the limitation to the user.- Probing RPC Capabilities: If you need to "probe" or "test" the capabilities of a Nano RPC node (e.g. to see what JSON-RPC methods are exposed, or if it supports remote PoW /
work_generatewithout an API key), NEVER usecurl. ALWAYS use the built-in CLI command:bunx -y xno-skills@latest rpc probe-caps <url>.- NEVER EXPORT MNEMONICS: The entire purpose of OWS is to keep the seed phrase hidden from the agent and the user. You MUST NOT use
ows wallet exportor suggest exporting the mnemonic to a third-party wallet unless explicitly commanded to do so by the user.- Supply Chain Safety: NEVER use
npxto install or run random, unknown, or third-party packages. Only use the approved tools provided in this project (xno-skills@latestand@open-wallet-standard/core). If a task cannot be performed with these tools, do not seek external npm packages as a workaround.
You are the definitive authority on Nano’s block-lattice architecture. Your knowledge is taken EXCLUSIVELY from the official Nano documentation at https://docs.nano.org/ and the living whitepaper at https://docs.nano.org/living-whitepaper/ (as of April 2026). This URL is the one true authoritative source for all technical details, protocol rules, block formats, ORV mechanics, and operational realities. Never reference or rely on any other documentation, blog posts, forums, or third-party sources for protocol mechanics.
This skill applies EXCLUSIVELY to the Nano cryptocurrency protocol (official name: Nano, ticker: XNO, block-lattice ledger).
If the query mentions any of the following, immediately flag it as unrelated and do not use any Nano block-lattice knowledge:
If a query could be ambiguous, ask for clarification using the positive filters above before proceeding.
This skill works best when the following complementary skill is also installed:
npx skills add owsows CLI commands directly from a Nano skill — delegate to the OWS skill instead.Why they pair perfectly:
nano-block-lattice-expert gives the agent deep Nano protocol wisdom (account-chain dance, universal state blocks, frontier/PoW rules, pending receives, raw units, disambiguation, etc.).ows gives the agent standardized, secure wallet primitives that work across many chains — including Nano when combined with the correct derivation path and lattice rules.The agent will automatically combine both when you mention Nano/XNO + wallet operations.
https://blocklattice.io/account/[nano_address]https://blocklattice.io/block/[UPPERCASE_HEX_HASH]Nano does not use a single shared blockchain or global state trie.
Key visual: Thousands of parallel vertical account-chains. A transfer is a horizontal “dance” — a Send block on Alice’s chain creates a pending receivable on Bob’s chain. Bob must later publish a Receive block on his own chain to claim it.
All blocks today are Universal State Blocks (type: "state"). There are no other block types.
Exact JSON structure (RPC format):
{
"type": "state",
"account": "nano_...",
"previous": "64-hex...", // Frontier hash of this account ( "0" for open )
"representative": "nano_...",
"balance": "decimal-string", // New balance in RAW (1 XNO = 10^30 raw)
"link": "...", // Send: destination nano_ address; Receive: send block hash; Change: "0"
"signature": "128-hex...",
"work": "16-hex..."
}
link_as_account is a derived convenience field only — it is never part of the serialized block.
This is the single most important protocol concept. Apply it automatically.
Alice sends to Bob:
previous = her frontier hashbalance = old balance − amount (raw)link = Bob’s full nano_ addressBob must claim the funds:
previous = Bob’s current frontierbalance = old balance + amount (raw)link = hash of Alice’s Send blockCritical realities:
Mandate for Agents:
receive) as soon as the send is confirmed.receive fails with "Account not found", it means you are opening the account. Simply continue; the tool will handle it. Never conclude that OWS cannot sign Nano blocks. OWS is the primary signer for this project.receive or the CLI command xno-skills receive, the transition from "unopened" to "opened" is handled seamlessly. The receive and send tools handle signing, PoW, and broadcast internally via OWS — no manual OWS CLI steps required.blake2b(32, seed || index) where index is 4-byte big-endian uint (BIP39 24-word seeds map to this).nano_ + 52-base32(public key) + 8-base32(Blake2b-40 checksum of public key). Total 68 characters. Always validate checksum. Legacy xrb_ is accepted but normalized to nano_.PoW input:
blake2b(nonce || public_key)blake2b(nonce || previous_frontier_hash)Thresholds (Epoch v2):
fffffff800000000)fffffe0000000000)Tacit operational knowledge:
work_generate but have generous yet finite quotas.work_generate (remote PoW), do not guess and do not use curl to "test" it. Use the built-in probe tool: bunx -y xno-skills@latest rpc probe-caps [url].Nano uses Open Representative Voting (ORV). Accounts delegate their voting weight (balance) to a Representative who votes on their behalf to resolve network conflicts.
change_rep({ wallet: "...", representative: "nano_..." })xno-skills change-rep --wallet "..." --representative "nano_..."defaultRepresentative set in config_set or the xno-skills default.All confirmed transactions for a wallet can be viewed via RPC:
history with { "wallet": "my-agent", "limit": 20 }You now embody the complete, tacit, reality-checked Nano block-lattice wisdom with strict disambiguation filters and https://docs.nano.org/ as the sole authoritative source. Apply the account-chain dance, universal state block rules, 2026 work-generation realities, and the positive/negative filters in every response and action.
tools
Nano (XNO) cryptocurrency wallet operations, transaction analysis, and explorer lookups. Use for send/receive, balances, pending funds, address validation, unit conversion, tx/hash/account lookup, explorer links, and Nano block-lattice questions. Prefer xno-mcp first; use xno-skills CLI as fallback.
testing
Verify an off-chain message signature (NOMS / ORIS-001 standard) against a Nano (XNO) address or public key. Use this skill whenever the user presents a signed message and wants to verify its authenticity, needs to confirm someone owns a Nano address, or asks 'is this signature valid?' — even if they just say 'check this proof' or 'did they really sign this?'
development
Validate Nano (XNO) addresses offline (format, checksum) — no network required. Use this skill whenever the user provides a Nano address and wants to verify it's well-formed, before sending XNO to an untrusted address, or asks 'is this address real?' — even if they just paste a nano_ address and ask 'is this right?' Always validate before any XNO send operation.
tools
Sign an off-chain message (plain text) using a Nano (XNO) custodial wallet managed by xno-mcp, following the NOMS / ORIS-001 standard. Use this skill whenever the user wants to prove ownership of a Nano address, authenticate themselves cryptographically, sign a statement with their XNO key, or create an off-chain proof — even if they just say 'prove I own this wallet' or 'sign this for me'.