Skip to content

numtel/open-nano-wallet

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
css
 
 
 
 
 
 
img
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Open Nano Wallet

Nano (Formerly Raiblocks) wallet that runs without a full node.

View GitHub hosted instance

How It Works

Backend services are comprised of 2 very simple AWS Lambda functions:

  1. /account Transaction history is gleaned from the nanode.co block explorer
  2. /publish New blocks are published to the network using a generic UDP publisher

The frontend may be served statically since there is no central wallet database. Wallets are encrypted using a randomly generated salt and your given password then kept in the browser's localStorage.

Proof of work (PoW) is calculated using numtel/nano-webgl-pow and jaimehgb/RaiBlocksWebAssemblyPoW. A WASM or WebGL2 compatible browser is required to calculate work values.

Work values begin calculating as soon as possible and are persisted in the stored wallet for later use. Long transaction processing times indicate that the work value is still calculating.

Installation

  1. Create a new AWS CloudFormation stack using the api.yml stack template.
  2. Update the endpoint URL values in index.html
  3. Host the frontend
$ python -m SimpleHTTPServer
  1. Browse to the frontend: http://localhost:8000

The link code value contains a base64 encoded Uint8Array of length 40.

  • The first 32 bytes are the private key of the redeem account.
  • The last 8 bytes are a valid work value for using the open block as a previous in order to allow the recipient instant access to funds.

When encrypted with a password, the link code value contains 2 base64 encoded values separated by a colon.

  • The first is the salt used to generate the encryption key.
  • The second is the box generated by encrypting the original value.

See the source code listing for the encrypt and decrypt functions for more information.

With the encoded information, redeemable accounts can be recovered by other means than this wallet application.

License

MIT

Releases

No releases published

Packages

No packages published