No description
Find a file
2017-02-28 20:53:26 -06:00
_alerts Update alert retirement with final alert 2017-01-20 10:56:26 -05:00
_build Update pubring with my signing subkey 2015-10-19 11:03:35 -04:00
_contrib Add JSHint checks to the Makefile 2015-08-21 02:20:05 -04:00
_data/glossary/en remove extra "the" from hard-fork.yaml 2016-12-19 21:44:42 -05:00
_includes resources: Fix broken link to Resources page 2017-01-30 18:23:20 -06:00
_layouts Remove halvening 2016-07-09 17:55:39 +01:00
_less screen: Add default styles for Exchanges page 2017-01-22 14:11:34 -06:00
_plugins Upgrade to Jekyll 3.0 2016-01-06 23:09:56 -05:00
_posts blog: Revise blockchain to be two words 2017-01-09 07:39:44 -06:00
_releases Bitcoin Core 0.13.2 2017-01-03 09:38:16 +01:00
_templates exchanges: Fix Indonesian flag 2017-01-30 19:38:59 -06:00
_translations en: Add a meta description to the Exchanges page 2017-01-22 14:12:04 -06:00
css Merge pull #1007: Start using Font Awesome icons 2015-08-25 07:21:46 -04:00
de/bitcoin-core Bitcoin Core: add banner redirecting some pages to BitcoinCore.org 2016-01-16 19:20:39 -05:00
docs docs: Revise titles and headings 2017-02-28 20:53:26 -06:00
en full-node: Add importprunedfunds/removeprunedfunds 2017-01-05 00:03:30 -06:00
es/bitcoin-core Bitcoin Core: add banner redirecting some pages to BitcoinCore.org 2016-01-16 19:20:39 -05:00
files/bitcoin-paper Bitcoin Paper: Add Swedish Translation 2015-07-30 21:31:45 -04:00
font Position fonts in separate directories 2014-05-22 15:30:58 -04:00
img flags: Fix misnaming of ID/CN flags 2017-01-22 12:40:00 -06:00
it/bitcoin-core Update link 2016-03-07 23:59:36 -05:00
js Remove ad infrastructure 2016-03-09 16:40:10 +00:00
quality-assurance Revert "Revert "Merge pull #793: Dev Docs: New Glossary & JS Search Box"" 2015-04-14 08:55:53 -04:00
ru/bitcoin-core Bitcoin Core: add banner redirecting some pages to BitcoinCore.org 2016-01-16 19:20:39 -05:00
zh_CN/bitcoin-core Bitcoin Core: add banner redirecting some pages to BitcoinCore.org 2016-01-16 19:20:39 -05:00
zh_TW/bitcoin-core Bitcoin Core: add banner redirecting some pages to BitcoinCore.org 2016-01-16 19:20:39 -05:00
.gitattributes Add gitAttributes file to treat SVGs as binary (not text) 2015-08-22 18:23:43 -04:00
.gitignore Upgrade to Jekyll 3.0 2016-01-06 23:09:56 -05:00
.jshintrc Add JSHint checks to the Makefile 2015-08-21 02:20:05 -04:00
.travis.yml New plugin env.rb to make env vars available in templates 2015-09-04 14:32:15 -04:00
404.html Group _includes files in subfolders 2015-09-05 20:49:55 -04:00
_autocrossref.yaml Bitcoin Core Releases, BIPs and protocol version references update 2017-01-12 23:54:50 +01:00
_config.yml config: Update initial DL size of blockchain 2017-01-01 09:57:40 -06:00
_events.yml events: Add Bitcoin Brunch on Intl Day of Privacy 2017-01-22 21:16:46 -06:00
andreas_schildbach.asc Add gpg key for Andreas Schildbach (8B877A60). 2013-03-03 00:53:41 +01:00
bitcoin.pdf initial commit 2011-08-31 21:30:26 +02:00
CODE_OF_CONDUCT.md docs: Add basic Code of Conduct for Contributors 2017-02-09 07:31:57 -06:00
CONTRIBUTING.md docs: Add links to Code of Conduct 2017-02-09 07:43:20 -06:00
COPYING Set license files and headers for bitcoin.org's content 2014-11-21 19:09:12 -05:00
favicon.ico new bitcoin.org 2013-03-18 14:29:59 -04:00
favicon.png temporary link to bitcoin-qt instead of multibit and a few minor fixes 2013-03-21 21:08:28 -04:00
gavinandresen.asc Update my pgp key 2013-12-09 11:03:28 +10:00
Gemfile Upgrade to Jekyll 3.0 2016-01-06 23:09:56 -05:00
Gemfile.lock Upgrade to Jekyll 3.0 2016-01-06 23:09:56 -05:00
gmaxwell.asc Update my gpg key. 2013-07-14 21:14:20 -07:00
google40ba4724029a01dd.html Add new Google Webmaster Tools verification file 2014-02-01 10:50:45 -05:00
index.html Group _includes files in subfolders 2015-09-05 20:49:55 -04:00
jgarzik-pobox.asc Update jgarzik email, PGP public key block. 2015-10-01 11:33:54 -04:00
jonasschnelli.asc add jonasschnellis PGP key to core commiters list 2015-11-13 15:12:08 +01:00
laanwj-releases.asc Add Wladimir's Releases Key 2015-06-26 19:55:35 -04:00
laanwj.asc add Wladimir to list of developers 2011-10-19 15:59:15 +02:00
LICENSE LICENSE: Add LICENSE file (from COPYING) 2017-02-09 07:22:29 -06:00
luke-jr.asc Update PGP key for Luke Dashjr (BD02942421F4889F) 2016-06-09 05:28:44 +00:00
Makefile Upgrade to Jekyll 3.0 2016-01-06 23:09:56 -05:00
pieterwuille.asc Added my new GnuPG key 2015-10-31 10:45:16 -04:00
README.md docs: Add 'Events, Release Notes, and Alerts' 2017-02-28 20:45:09 -06:00
robots.txt Prevent site indexing for preview builds 2015-09-06 08:31:33 -04:00
satoshinakamoto.asc Add Satoshi PGP key (fixes #79) 2013-04-06 05:15:26 -04:00
schneider.asc add press-list, renamed all PGP keys to .asc 2011-09-03 14:18:53 +02:00
willbinns.asc willbinns: Add GnuPG key (EB74A404) 2017-01-01 09:44:22 -06:00

Build Status

How To Participate

Bitcoin.org needs volunteers like you! Here are some ways you can help:

You can always report problems or help improve bitcoin.org by opening a new issue or pull request on GitHub.

Wallets

The wallet list is based on the personal evaluation of the maintainer(s) and regular contributors of this site, according to the criteria detailed below.

These requirements are meant to be updated and strengthened over time. Innovative wallets are exciting and encouraged, so if your wallet has a good reason for not following some of the rules below, please submit it anyway and we'll consider updating the rules.

Basic requirements:

  • Sufficient users and/or developers feedback can be found without concerning issues, or independent security audit(s) is available
  • No indication that users have been harmed considerably by any issue in relation to the wallet
  • No indication that security issues have been concealed, ignored, or not addressed correctly in order to prevent new or similar issues from happening in the future
  • No indication that the wallet uses unstable or unsecure libraries
  • No indication that changes to the code are not properly tested
  • Wallet was publicly announced and released since at least 3 months
  • No concerning bug is found when testing the wallet
  • Website supports HTTPS and 301 redirects HTTP requests
  • SSL certificate passes Qualys SSL Labs SSL test
  • Website serving executable code or requiring authentication uses HSTS with a max-age of at least 180 days
  • The identity of CEOs and/or developers is public
  • Avoid address reuse by displaying a new receiving address for each transaction in the wallet UI
  • Avoid address reuse by using a new change address for each transaction
  • If private keys or encryption keys are stored online:
    • Refuses weak passwords (short passwords and/or common passwords) used to secure access to any funds, or provides an aggressive account lock-out feature in response to failed login attempts along with a strict account recovery process.
  • If user has no access over its private keys:
    • Provides 2FA authentication feature
    • Reminds the user to enable 2FA by email or in the main UI of the wallet
    • User session is not persistent, or requires authentication for spending
    • Provides account recovery feature
  • If user has exclusive access over its private keys:
    • Allows backup of the wallet
    • Restoring wallet from backup is working
    • Source code is public and kept up to date under version control system
  • If user has no access to some of the private keys in a multi-signature wallet:
    • Provides 2FA authentication feature
    • Reminds the user to enable 2FA by email or in the main UI of the wallet
    • User session is not persistent, or requires authentication for spending
    • Gives control to the user over moving their funds out of the multi-signature wallet
  • For hardware wallets:
    • Uses the push model (computer malware cannot sign a transaction without user input)
    • Protects the seed against unsigned firmware upgrades
    • Supports importing custom seeds
    • Provides source code and/or detailed specification for blackbox testing if using a closed-source Secure Element

Optional criteria (some could become requirements):

  • Received independent security audit(s)
  • Does not show "received from" Bitcoin addresses in the UI
  • Uses deterministic ECDSA nonces (RFC 6979)
  • Provides a bug reporting policy on the website
  • Website serving executable code or requiring authentication is included in the HSTS preload list
  • If user has no access over its private keys:
    • Full reserve audit(s)
    • Insurance(s) against failures on their side
    • Reminds the user to enable 2FA in the main UI of the wallet
  • If user has exclusive access over its private keys:
    • Supports HD wallets (BIP32)
    • Provides users with step to print or write their wallet seed on setup
    • Uses a strong KDF and key stretching for wallet storage and backups
    • On desktop platform:
      • Encrypt the wallet by default
  • For hardware wallets:
    • Prevents downgrading the firmware

Adding a wallet

Before adding a wallet, please make sure your wallet meets all of the Basic Requirements listed above, or open a new issue to request an exemption or policy change. Feel free to email Will Binns will@bitcoin.org or Dave Harding dave@dtrt.org if you have any questions.

Wallets can be added in _templates/choose-your-wallet.html. Entries are ordered by levels and new wallets must be added after the last wallet on the same level.

  • Level 1 - Full nodes
  • Level 2 - SPV, Random servers
  • Level 3 - Hybrid, Multisig wallets
  • Level 4 - Web wallets

Screenshot: The png files must go in /img/screenshots, be 250 X 350 px and optimized with optipng -o7 file.png.

Icon: The png file must go in /img/wallet, be 144 X 144 px and optimized with optipng -o7 file.png. The icon must fit within 96 X 96 px inside the png, or 85 X 85 px for square icons.

Description: The text must go in _translations/en.yml alongside other wallets' descriptions.

Score

Each wallet is assigned a score for five criteria. For each of them, the appropriate text in _translations/en.yml needs to be chosen.

Control - What control the user has over his bitcoins?

To get a good score, the wallet must provide the user with full exclusive control over their bitcoins.

To get a passing score, the wallet must provide the user with exclusive control over their bitcoins. Encrypted online backups are accepted so long as only the user can decrypt them. Multisig wallets are accepted so long as only the user can spend without the other party's permission.

Validation - How secure and « zero trust » is payment processing?

To get a good score, the wallet must be a full node and need no trust on other nodes.

To get a passing score, the wallet must rely on random nodes, either by using the SPV model or a pre-populated list or servers.

Transparency - How transparent and « zero trust » is the source code?

To get a good score, the wallet must deserve a passing score and be built deterministically.

To get a passing score, the wallet must be open-source, under version control and releases must be clearly identified (e.g. by tags or commits). The codebase and final releases must be public since at least 6 months and previous commits must remain unchanged.

Environment - How secure is the environment of the wallet?

To get a good score, the wallet must run from an environment where no apps can be installed.

To get a passing score, the wallet must run from an environment that provides app isolation (e.g. Android, iOS), or require two-factor authentication for spending.

Privacy: Does the wallet protect users' privacy?

To get a good score, the wallet must avoid address reuse by using a new change address for each transaction, avoid disclosing information to peers or central servers and be compatible with Tor.

To get a passing score, the wallet must avoid address reuse by using a new change address for each transaction.

Advanced Usage

Redirections

Redirections can be defined in _config.yml.

  /news: /en/version-history

Aliases For Contributors

Aliases for contributors are defined in _config.yml.

aliases:
  s_nakamoto: Satoshi Nakamoto
  --author=Satoshi Nakamoto: Satoshi Nakamoto
  gavinandresen: Gavin Andresen

Blog Posts

Posts for the [Bitcoin.org Site Blog][] should be added to the _posts directory with the naming convention: YEAR-MONTH-DAY-ARBITRARY_FILE_NAME (with year, month, and day as two-digit numbers). The YAML front matter should be similar to this:

---
type: posts
layout: post
lang: en
category: blog

title: "Quarterly Report March 2015"
permalink: /en/posts/quarterly-report-march-2015.html
date: 2015-03-05
author: >
  David A. Harding (<a href="mailto:dave@dtrt.org">email</a>, <a
  href="https://github.com/harding">GitHub</a>,
  <a href="http://www.reddit.com/user/harda/">Reddit</a>)
---

The type, layout, and category should always be as specified above. The other parameters should be set to values specific to that post, but the permalink must end in '.html'.

Below the YAML front matter, enter the content of the post in Markdown format. Images should be placed in img/blog/free if they are MIT-licensed or img/blog/nonfree if they have a more restrictive copyright license.

Developer PGP keys

The site hosts the PGP keys for several Bitcoin Core contributors. Here are some notes about updating those keys based on previous experience:

  1. If a key is revoked, update the key with the revocation immediately. Anyone with commit access to the site repository may do this without prior review, but they should post the commit ID to an open issue or PR so other people can review it. After the revoked key is uploaded, discussion about verifying/adding a replacement key may continue at a slower pace.

Code of Conduct

Contributors to Bitcoin.org are expected to adhere to the project's Code of Conduct.