{"id":18304612,"url":"https://github.com/numtel/open-nano-wallet","last_synced_at":"2025-04-05T15:31:22.869Z","repository":{"id":150130803,"uuid":"119469493","full_name":"numtel/open-nano-wallet","owner":"numtel","description":"Nano (RaiBlocks) light wallet","archived":false,"fork":false,"pushed_at":"2018-04-30T06:53:20.000Z","size":828,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T06:41:24.650Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://numtel.github.io/open-nano-wallet","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numtel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-30T02:16:27.000Z","updated_at":"2019-12-07T07:51:33.000Z","dependencies_parsed_at":"2023-07-07T12:45:39.327Z","dependency_job_id":null,"html_url":"https://github.com/numtel/open-nano-wallet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fopen-nano-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fopen-nano-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fopen-nano-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtel%2Fopen-nano-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numtel","download_url":"https://codeload.github.com/numtel/open-nano-wallet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247358667,"owners_count":20926266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T15:29:34.244Z","updated_at":"2025-04-05T15:31:22.845Z","avatar_url":"https://github.com/numtel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Nano Wallet\n\n[Nano](https://nano.org) (Formerly [Raiblocks](https://raiblocks.net)) wallet that runs without a full node.\n\n[View GitHub hosted instance](https://numtel.github.io/open-nano-wallet)\n\n## How It Works\n\nBackend services are comprised of [2 very simple AWS Lambda functions](api.yml):\n\n1. `/account` Transaction history is gleaned from the [nanode.co block explorer](https://www.nanode.co)\n2. `/publish` New blocks are published to the network using a generic UDP publisher\n\nThe 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`.\n\nProof of work (PoW) is calculated using [numtel/nano-webgl-pow](https://github.com/numtel/nano-webgl-pow) and [jaimehgb/RaiBlocksWebAssemblyPoW](https://github.com/jaimehgb/RaiBlocksWebAssemblyPoW). A [WASM](https://caniuse.com/#feat=wasm) or [WebGL2](https://caniuse.com/#feat=webgl2) compatible browser is required to calculate work values.\n\nWork 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.\n\n## Installation\n\n1. Create a new AWS CloudFormation stack using the [`api.yml` stack template](api.yml).\n2. Update the endpoint URL values in [`index.html`](index.html)\n3. Host the frontend\n```sh\n$ python -m SimpleHTTPServer\n```\n4. Browse to the frontend: [`http://localhost:8000`](http://localhost:8000)\n\n## Redeemable link codes\n\nThe link code value contains a base64 encoded `Uint8Array` of length 40.\n\n* The first 32 bytes are the private key of the redeem account.\n* 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.\n\nWhen encrypted with a password, the link code value contains 2 base64 encoded values separated by a colon.\n\n* The first is the salt used to generate the encryption key.\n* The second is the box generated by encrypting the original value.\n\nSee the [source code listing for the encrypt and decrypt functions](https://github.com/numtel/open-nano-wallet/blob/e7cdf269f96cb88dc513f4e4cf5f9620c4f12327/functions.js#L15-L42) for more information.\n\nWith the encoded information, redeemable accounts can be recovered by other means than this wallet application.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtel%2Fopen-nano-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumtel%2Fopen-nano-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtel%2Fopen-nano-wallet/lists"}