Skip to content

Wallet

Every mining device is bound to an owner wallet (an Ethereum address). The owner bonds collateral, signs gasless actions and receives payouts by default. The device itself has a separate node key (ed25519) that signs votes; it never holds funds.

Option Where Notes
Embedded wallet, new key all miners random key, exportable as a private key on this machine
Embedded wallet, new recovery phrase all miners BIP-39, 12 or 24 words, shown once; write it down
Import a recovery phrase all miners (not remotely) BIP-39 (12, 15, 18, 21 or 24 words), optional passphrase, account index 0–9
Import a private key all miners (not remotely) 0x… hex
External wallet store sign-in, Android (WalletConnect) every signature is approved in your wallet app

Addresses are derived at m/44'/60'/0'/0/<account index>, the path MetaMask and most wallets use: account index 0 is MetaMask’s “Account 1”. Only the derived private key is stored, encrypted (XChaCha20-Poly1305) with a data key kept in the OS keychain (macOS Keychain, Windows Credential Manager, Secret Service), Android Keystore, or --wallet-key-file on headless servers. The phrase itself is never written to disk.

Terminal window
necter-miner wallet create # random key
necter-miner wallet create --recovery-phrase --words 24 # phrase printed once, never stored
necter-miner wallet import # prompts for a private key
necter-miner wallet import --recovery-phrase --account-index 0 --passphrase
necter-miner wallet show
necter-miner wallet export # local terminal only

Then bind the device: necter-miner bind --embedded, or necter-miner bind --owner 0x… to bind to an external wallet (you sign the binding message in that wallet).

Binding proves that both the wallet owner and the device agree. The wallet signs readable text (EIP-191):

Necter: bind mining device
Network: necter-testnet
Chain ID: 11155111
Owner: 0x<owner address>
Node ID: ndsr-<16 hex>
Node key: 0x<device public key>
Issued at: <unix seconds>
Nonce: <32 hex>

and the device key signs necter-bind-v1: + the message’s keccak256 hash. A newer binding for the same device replaces the old one; unbinding uses the same message with first line Necter: unbind mining device.