obyte.js
GitHubDiscord
0.1.9
0.1.9
  • Obyte.js
  • Getting started
    • Quick start
    • Testnet
  • Client
    • Subscribe
    • Just saying
  • API
    • Get witnesses
    • Get peers
    • Get joint
    • Get last MCI
    • Get history
    • Get attestation
    • Get attestations
    • Get bots
    • Get asset metadata
    • Get definition
    • Get balances
    • Get profile units
    • Dry run AA (testnet)
    • Get AA state vars (testnet)
    • Get AAs by base AAs (testnet)
    • Get AA responses (testnet)
    • Core
      • Catchup
      • Get hash tree
      • Get light props
      • Post joint
      • Pick divisible coins for amount
      • Heartbeat
  • Post
    • Address definition change
    • Attestation
    • Asset
    • Asset attestors
    • Data
    • Data feed
    • Definition
    • Definition template
    • Payment
    • Poll
    • Vote
    • Profile
    • Text
    • Multi
  • Utils
    • Sign message
    • Generate a random address
    • Get definition address
    • Is valid address
    • Keep connection alive
  • About
    • About
    • Links
    • Tutorials
Powered by GitBook
On this page
  • Paper wallet
  • Node.js
  1. Utils

Generate a random address

PreviousSign messageNextGet definition address

Last updated 5 years ago

Paper wallet

To generate a new random address you can use Obyte paper wallet offline here:

Node.js

Open your terminal and run:

npm i byteball bitcore-mnemonic --save

Then run this script to generate a new wallet:

const { toWif, getChash160 } = require('byteball/lib/utils');
const Mnemonic = require('bitcore-mnemonic');

const testnet = false; // Change to "true" to generate testnet wallet

const path = testnet ? "m/44'/1'/0'/0/0" : "m/44'/0'/0'/0/0";
let mnemonic = new Mnemonic();
while (!Mnemonic.isValid(mnemonic.toString())) {
  mnemonic = new Mnemonic();
}
const xPrivKey = mnemonic.toHDPrivateKey();
const { privateKey } = xPrivKey.derive(path);
const privKeyBuf = privateKey.bn.toBuffer({ size: 32 });
const wif = toWif(privKeyBuf, testnet);
const pubkey = privateKey.publicKey.toBuffer().toString('base64');
const definition = ['sig', { pubkey }];
const address = getChash160(definition);

console.log(
  'Seed:', mnemonic.phrase,
  '\nPath:', path,
  '\nWIF:', wif,
  '\nPublic key:', pubkey,
  '\nAddress:', address
);

https://bonustrack.github.io/obyte-paperwallet/