Skip to main content

Specs

The key numbers of the Neurai network: how blocks are made, how many coins will ever exist, what each kind of address looks like and how a wallet turns one set of recovery words into keys. Values are taken from the node's chain parameters.

Values that change with the POSITRONIC upgrade are marked. POSITRONIC is active on testnet and regtest only. Mainnet is unchanged and nothing is scheduled for it yet.

At a glance​

ParameterValue
Name · tickerNeurai · XNA
ConsensusProof of work. KAWPOW on mainnet, mined with consumer GPUs. Double SHA-256 on testnet and regtest
Block time1 minute. 30 seconds on testnet with POSITRONIC
Block weight8 MB
Initial block reward50,000 XNA
Reward reduction5% every 14,400 blocks, about every 10 days
Maximum supply21,000,000,000 XNA
Decimals8
Launch2023-04-17 08:40 UTC
Code baseRavencoin, from Bitcoin
Native assetsTokens and unique assets on layer 1, with no contract to deploy
Address typesLegacy N… on mainnet. Testnet adds strict ECDSA, post-quantum, contract and private addresses
PrivacyOptional privacy pool, testnet only, with test parameters

Networks​

Neurai runs three separate networks. Coins on testnet and regtest have no value and cannot move to mainnet.

NetworkP2P portRPC portAddress prefixPurpose
Mainnet1900019001N…Production
Testnet1910019101t…Public testing. Reset for POSITRONIC, whose features are active from block 10
Regtest1920019201t…Local development on your own machine

Consensus​

Blocks are found by proof of work. The difficulty adjusts on every block, so blocks keep arriving on time whether miners join or leave.

ParameterMainnetTestnetRegtest
Proof-of-work hashKAWPOW (GPU)Double SHA-256 (CPU)Double SHA-256 (CPU)
Block target60 s60 s, then 30 s from block 1060 s
Difficulty algorithmDark Gravity Wave, 180-block windowSameSame
Minimum-difficulty blocksNot allowedAllowed after a stalled targetAllowed
Subsidy interval14,400 blocks14,400, then 28,800 blocks from block 1014,400 blocks
Maximum reorganization depth60 blocks60, then 120 blocks from block 1060 blocks
Coinbase maturity100 blocks100 blocks100 blocks

Testnet and regtest use double SHA-256 so that anyone can mine them on a CPU. Mainnet uses KAWPOW, which keeps mining on consumer graphics cards.

Emission schedule​

The block reward starts at 50,000 XNA and drops 5% every 14,400 blocks, about every 10 days. After 36 reductions it switches to fixed steps and reaches zero after 383 reductions, about 10.5 years after launch. After that, no new XNA is created.

IntervalFrom blockApprox. timeReward per block
00launch50,000 XNA
114,40010 days47,500 XNA
228,80020 days45,125 XNA
………5% less each interval
36518,4001 year5,000 XNA fixed
721,036,8002 years4,000 XNA
1081,555,2003 years3,000 XNA
1442,073,6004 years2,000 XNA
1802,592,0005 years1,000 XNA
2163,110,4006 years500 XNA
3835,515,20010.5 years0

Total mined on mainnet at the end of the schedule: about 20,994,000,000 XNA. On testnet, blocks come twice as often, so each block pays half as much and the reward drops every 28,800 blocks. The pace over time and the total stay the same.

Addresses​

The first characters of an address tell you its network and its type. Mainnet uses the legacy format today. The other types come with POSITRONIC and work on testnet and regtest.

TypeMainnetTestnetWhat it is for
LegacyN…t…Everyday payments. Every Neurai wallet supports it
Strict ECDSAnq1r…tnq1r…Classical keys in the new address format
Post-quantumpq1z…tpq1z…Keys built to resist quantum computers. See Post-quantum addresses
Contractnc1p…tnc1p…Covenants and contracts, such as the privacy pool. Wallets never hand them out
Privatenzk1…tnzk1…Receiving private XNA inside the privacy pool

Regtest uses the testnet forms, except private addresses, which start with rnzk1….

  • Private payments need a private address. A transparent address cannot receive inside the pool, and sending XNA straight to a contract address does not create a private balance.
  • A new private address per payment. Wallets hand out a fresh one each time, and nobody can tell that two of them belong to the same wallet.
  • Old contract addresses. Contract addresses used to be written nq1p… / tnq1p…. That form is no longer accepted. Use nc1p… / tnc1p….

Prefixes for developers​

EncodingMainnetTestnet and regtest
P2PKH (Base58)0x35 (53) → N…0x7f (127) → t…
P2SH (Base58)0x75 (117)0xc4 (196)
WIF private key0x80 (128)0xef (239)
BIP32 extended public key0x0488b21e → xpub0x043587cf → tpub
BIP32 extended private key0x0488ade4 → xprv0x04358394 → tprv
Post-quantum extended private key0x0488ac24 → xpqp0x043581d5 → tpqp
Bech32m strict ECDSA, witness v3nqtnq
Bech32m strict PQ, witness v2pqtpq
Bech32m generic AuthScript, witness v1nctnc
Bech32m private receiving addressnzktnzk on testnet, rnzk on regtest
Message signing magicNeurai Signed Message:\nSame

Keys and recovery​

Every Neurai wallet starts from one set of recovery words (BIP39) and an optional passphrase. From them a wallet builds three separate families of keys. Each family is recovered on its own from the same words, and the keys of one family reveal nothing about the others. The words are the single backup for all of them, so keep them safe.

Recovery wordsBIP39 words+ optional passphrasethe only backup you needWallet seed64 bytesClassical keysLegacy and strict ECDSA addresses, DePIN keysBIP32 · secp256k1N… · nq1r…Post-quantum keysSignatures built to resist quantum computersPQ-HD (NIP-022) · ML-DSA-44pq1z…Private pool keysSpend and view keys for the privacy poolNeuraiZK/v2 · + optional ZK passphrasenzk1…one set of words · three independent key families

Derivation paths​

Classical and post-quantum keys follow numbered paths, like folders inside the wallet. Each use has its own path, so keys for different purposes never collide. m is the root of the classical tree and m_pq the root of the separate post-quantum tree.

purposecoinaccountchainindexWalletm/44'/0' · 1'/0'/0 · 1/inode wallet, legacy P2PKH (N… / t…)Hardware walletsm/44'/1900'/0'/0/iSLIP-44 coin type 1900 (OneKey)DePIN clientm/44'/1900'/100'/0/0messaging identity in walletsDePIN pool keym/44'/1900'·1'/200'/0 · 1/0service node, signs every replyStrict ECDSAm/84'/1900'·1'/0'/0 · 1/isecp256k1, Bech32m nq1r… / tnq1r…Post-quantumm_pq/100'/1900'·1'/0'/0' · 1'/i'ML-DSA-44, Bech32m pq1z… / tpq1z…
UsePathNotes
Node walletm/44'/0'/0'/chain/i mainnet, m/44'/1'/0'/chain/i testnetChain 0 receiving, 1 change
Hardware walletsm/44'/1900'/0'/0/iCoin type 1900, registered for Neurai in SLIP-44
DePIN client identitym/44'/1900'/100'/0/0The identity a wallet uses for DePIN messaging
DePIN pool keym/44'/1900'/200'/0/0 mainnet, m/44'/1'/200'/1/0 testnet, m/44'/1'/200'/0/0 regtestKey of a DePIN service node. It opens incoming messages and signs every reply
Strict ECDSAm/84'/1900'/0'/chain/i mainnet, m/84'/1'/0'/chain/i testnetIts own branch, separate from the legacy keys
Post-quantumm_pq/100'/1900'/0'/chain'/i' mainnet, m_pq/100'/1'/0'/chain'/i' testnetSeparate tree (NIP-022). Every step is hardened. No WIF export and no xpub
Private pool walletNo pathBuilt from the words, an optional ZK passphrase, the family, the account and the pool. See Private wallets

A private pool wallet comes in three families, legacy, ecdsa and pq, and each family is a separate private wallet. The family only keeps wallets apart: it does not make the pool post-quantum.

What to back up​

WalletWhat you need to restore it
Legacy, strict ECDSA and post-quantumThe recovery words, plus the BIP39 passphrase if you set one
Private pool walletThe words and the BIP39 passphrase, the ZK passphrase if you set one, the family, the account and the pool. Your notes are stored on chain, so nothing else is needed. The words do not record which pools you used, so write that down
Private wallet created at randomIts encrypted wallet file and that file's password
DePIN service nodeThe service wallet. A new wallet means a new pool key, and clients that pinned the old one will warn their users
caution

A wrong ZK passphrase shows no error. It opens a different private wallet, usually empty. A forgotten ZK passphrase cannot be recovered.

Genesis​

FieldValue
Timestamp1681720840 (2023-04-17 08:40:40 UTC)
MessageFortune 16/April/2023 Elon Musk agrees A.I. will hit people like an asteroid
Reward50,000 XNA
Raw parameters (plain text)
Network Name: Neurai
Network Abbreviation: XNA
Mining Algorithm: KAWPOW Proof-of-work (testnet/regtest: double SHA-256)
Difficulty: Dark Gravity Wave, 180-block window
Block Time: 1 minute (testnet: 30 seconds from block 10)
Block Weight: 8 MB
Block Reward Schedule: 50,000 XNA per block
Block Reward Reduction: 5% every 14,400 blocks (~10 days)
Maximum Supply: 21,000,000,000 XNA
Decimal Places: 8
Launch Date: 2023-04-17 08:40 UTC
Genesis: Fortune 16/April/2023 Elon Musk agrees A.I. will hit people like an asteroid

Main Network: 19000
Main RPC: 19001
Testnet Network: 19100
Testnet RPC: 19101
Regtest Network: 19200
Regtest RPC: 19201

MAIN NETWORK
BIP32 Derivation Path: m/44'/0'/0'/0
BIP32 private: 0x0488ade4
BIP32 public: 0x0488b21e
PQ extended private: 0x0488ac24
Bech32m HRP: nq (strict ECDSA v3), pq (strict PQ v2), nc (generic AuthScript v1), nzk (private receiving)
private: 0x80
public: 0x35
scripthash: 0x75

Hardware wallets (OneKey): m/44'/1900'/0'/0
DePIN client: m/44'/1900'/100'/0
DePIN pool key: m/44'/1900'/200'/0
Strict ECDSA: m/84'/1900'/0'/0
Post-quantum: m_pq/100'/1900'/0'/0'
Private pool wallets: NeuraiZK/v2, no BIP32 path

TESTNET / REGTEST
BIP32 Derivation Path: m/44'/1'/0'/0
BIP32 private: 0x04358394
BIP32 public: 0x043587cf
PQ extended private: 0x043581d5
Bech32m HRP: tnq (strict ECDSA v3), tpq (strict PQ v2), tnc (generic AuthScript v1), tnzk (private receiving, regtest: rnzk)
private: 0xef
public: 0x7f
scripthash: 0xc4
DePIN pool key: m/44'/1'/200'/1 (regtest: m/44'/1'/200'/0)
Strict ECDSA: m/84'/1'/0'/0
Post-quantum: m_pq/100'/1'/0'/0'
Private pool wallets: NeuraiZK/v2, no BIP32 path