skills/convert-units/SKILL.md
Convert between XNO units (raw/xno/knano/mnano) with exact BigInt precision.
npx skillsauth add casualsecurityinc/xno-skills convert-unitsInstall 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.
Convert between different XNO cryptocurrency units with BigInt precision. XNO uses 30 decimal places, making floating-point arithmetic unsafe. Always use this skill for accurate conversions.
| Unit | Raw Value | Decimal Places | Description | |------|-----------|----------------|-------------| | raw | 1 | 0 | Smallest unit (base unit) | | mnano | 10^24 | 24 | Mega-nano (0.000001 XNO) | | knano | 10^27 | 27 | Kilonano (0.001 XNO) | | XNO | 10^30 | 30 | Base unit (1 XNO) |
1 XNO = 1,000 knano = 1,000,000 mnano = 10^30 raw
1 knano = 1,000 mnano = 10^27 raw
1 mnano = 10^24 raw
npx xno-skills convert <amount> <from-unit> --to <to-unit>
npx xno-skills convert 1 XNO --to raw
# Output: 1000000000000000000000000000000
npx xno-skills convert 0.5 XNO --to raw
# Output: 500000000000000000000000000000
npx xno-skills convert 1000000000000000000000000000000 raw --to XNO
# Output: 1
npx xno-skills convert 500000000000000000000000000000 raw --to XNO
# Output: 0.5
npx xno-skills convert 1 XNO --to knano
# Output: 1000
npx xno-skills convert 0.001 XNO --to knano
# Output: 1
npx xno-skills convert 1000 knano --to XNO
# Output: 1
npx xno-skills convert 1 knano --to XNO
# Output: 0.001
npx xno-skills convert 1 XNO --to mnano
# Output: 1000000
npx xno-skills convert 0.000001 XNO --to mnano
# Output: 1
npx xno-skills convert 1000000 mnano --to XNO
# Output: 1
npx xno-skills convert 1 mnano --to XNO
# Output: 0.000001
npx xno-skills convert 1000 knano --to mnano
# Output: 1000000
npx xno-skills convert 1 mnano --to knano
# Output: 0.001
XNO uses 30 decimal places, which exceeds JavaScript's safe integer limit (15-17 digits). Floating-point arithmetic causes precision loss:
// WRONG - Floating point loses precision
const wrong = 0.1 + 0.2; // 0.30000000000000004
// RIGHT - BigInt maintains precision
const correct = BigInt("1000000000000000000000000000000");
// DON'T use Number for XNO amounts
const wrong = 1.5; // Loses precision at 30 decimals
// DO use string input for CLI
// npx xno-skills convert "1.5" XNO --to raw
# Convert raw balance to human-readable XNO
npx xno-skills convert 500000000000000000000000000000 raw --to XNO
# Output: 0.5
# Convert to knano for smaller display
npx xno-skills convert 500000000000000000000000000000 raw --to knano
# Output: 500
# Send 0.001 XNO
npx xno-skills convert 0.001 XNO --to raw
# Output: 1000000000000000000000000000
# Send 1 knano
npx xno-skills convert 1 knano --to raw
# Output: 1000000000000000000000000000
# Calculate fee in raw (e.g., 0.000001 XNO fee)
npx xno-skills convert 0.000001 XNO --to raw
# Output: 1000000000000000000000000
# Convert fee to mnano
npx xno-skills convert 0.000001 XNO --to mnano
# Output: 1
# Convert 1 million XNO to raw
npx xno-skills convert 1000000 XNO --to raw
# Output: 1000000000000000000000000000000000000
# Convert large raw amount to XNO
npx xno-skills convert 1000000000000000000000000000000000000 raw --to XNO
# Output: 1000000
raw, XNO, knano, mnano# Invalid unit
npx xno-skills convert 1 XNO --to bitcoin
# Error: Unknown unit 'bitcoin'. Valid units: raw, XNO, knano, mnano
# Invalid amount
npx xno-skills convert abc XNO --to raw
# Error: Invalid amount 'abc'. Must be a valid number.
# Most common conversions
npx xno-skills convert 1 XNO --to raw # 10^30 raw
npx xno-skills convert 1 XNO --to knano # 1000 knano
npx xno-skills convert 1 XNO --to mnano # 1000000 mnano
npx xno-skills convert 1 knano --to XNO # 0.001 XNO
npx xno-skills convert 1 mnano --to XNO # 0.000001 XNO
npx xno-skills convert 1 raw --to XNO # 0.000000000000000000000000000001 XNO
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'.