● mainnet chainId 0x1 blk session
~/btconeth.com/
// boot.log · Nov-03-2015 06:30:13 PM +UTC · block 484,730

bitcoin,
on Ethereum.

The first 21 million bitcoin on Ethereum. Deployed November 3, 2015.

on chain
21M
total supply
8
decimals
pre-20
standard
tty/0 · btc.eth● live

          
// readme · why this exists
fact[0]
Older than the standard.
This contract was deployed 16 days before EIP-20 was proposed and two years before it was finalized. It is not an ERC-20 -- it is what tokens looked like before the standard existed.
fact[1]
The 21,000,000 one.
Two contracts named bitcoin were deployed that day, minutes apart, by the same hand. This is the one that matched bitcoin's exact supply -- the canonical twin, the one that meant it.
fact[2]
Survives from 2015.
Of the few tokens that exist on Ethereum from 2015, almost none are still meaningfully held. This one is. A working, queryable, transferable artifact from the year mainnet launched.
// timeline
Jul 30, 2015
Frontier (Ethereum mainnet) launches
Nov 3, 2015
Mist Wallet Beta 3 ships with one-click token deploy
Nov 3, 2015
spiderwars deploys bitcoin (btc, supply 21,000,000)
Nov 19, 2015
EIP-20 proposed by Fabian Vogelsteller (16 days later)
Sep 2017
ERC-20 finalized as a standard
Apr 5, 2024
Wrapper contract deployed for DEX listing
May 27, 2024
LP set, trading begins on Uniswap
Today
Held in archival wallets across the network
// proof
$ cast tx $TX_HASH && cast code $btc
tx receipt -- contract creation
txHash0xe6f5e591...ba19b9893635
block484,730 · confirmations
timestampNov-03-2015 06:30:13 PM +UTC
from0xe1237d552429cc333FfD3038Fc3ba3441d0B7ddE
from (label)BTC on ETH: Deployer
to0x1130547436810db920fa73681c946fea15e9b758 [created]
value0 ETH
txn fee0.0146896 ETH
gas price50 Gwei
state @ head
name()"bitcoin"
symbol()"btc"
decimals()8
balanceOf(0xe123...)2,100,000,000,000,000 (21M * 10^8)
// ten years of consistent state. zero upgrades, zero proxies.
wrapper contract (tradeable)
$btce0xc0bc84e95864bdfdcd1ccfb8a3aa522e79ca1410
// hexdump · real deployment input · tx 0xe6f5...3635
0x0775F05A074000 = 2,100,000,000,000,000 = 21M * 10^8 -- supply baked into init code by Mist
"bitcoin" and "btc" -- name and symbol embedded directly in bytecode
// archive · r/ethereum · 2015-11-03
$ curl reddit.com/r/ethereum/3rcnrx
r/ethereum · posted by /u/frozeman · 2015-11-03 view thread on reddit ↗
45
Ethereum Wallet Beta3 - Contract deployment and Token support!
submitted by /u/frozeman · 11 yr ago · 146 comments

This release fixes a lot of bugs and adds a new custom Token system, as well as a simple way to deploy contracts right from the wallet (including constructor parameters)!

sorted by: top · key comments shown
6
/u/NewToETH6 pts· 11 yr ago
So who is going to start the token "bitcoin" with 21M available?
permalink · reply · source · save
7
/u/spiderwarsdeployer7 pts· 11 yr ago
Done: token contract 0x1130547436810db920fa73681c946fea15e9b758
permalink · reply · source · save
3
/u/Bizilica3 pts· 11 yr ago
brilliant :)
permalink · reply · source · save
5
/u/spiderwarsdeployer5 pts· 11 yr ago
who want a bitcoin? :) add this token address 0x1130547436810db920fa73681c946fea15e9b758
permalink · reply · source · save
4
/u/frozemanOP · mist dev4 pts· 11 yr ago
give me some :) 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f
permalink · reply · source · save
2
/u/goodday752 pts· 11 yr ago
Ill trade you ETHER Tokens for some Bitcoin Tokens.
permalink · reply · source · save
// receipts · the contract that came out of this thread
$ cast call 0x1130...9b758
name        : "bitcoin"
symbol      : "btc"
decimals    : 8
balanceOf   : 2100000000000000  // 21M · 8 decimals
from        : 0xe1237d55...d0B7ddE (/u/spiderwars)
deployed    : Nov-03-2015 06:30:13 PM +UTC · block 484,730
txn fee     : 0.0146896 ETH · 50 Gwei
status      : 0 reverts · 0 upgrades · 0 migrations
// contract · mist wallet template · november 2015
$ cat myToken.sol
myToken.sol · Mist Wallet template · etherscan verified● verified
contract info
deployed viaMist Wallet Beta 3
tx hash0xe6f5...3635
block484,730
deployer0xe123...7ddE (spiderwars)
// pre-spec quirks
  • myToken -- generic Mist template, not a custom contract
  • constructor named after contract -- pre-constructor() keyword
  • uses throw -- pre-require() / revert()
  • events fired without emit -- keyword didn't exist
  • no approve / transferFrom -- written before EIP-20
  • no SafeMath, no SPDX, no pragma
  • supply passed as constructor arg, not hardcoded
# this is the Mist wallet's built-in token template. the same code that shipped with the wallet the day it launched. spiderwars filled in the fields: name="bitcoin", symbol="btc", supply=21000000, decimals=8.
// distribution · don't trust, verify
$ cast call $btce "balanceOf(address)"
1,673
wrapper ($btce) holders
65
original contract holders
// check any address · live rpc query
balanceOf · live query● ready

          
queries balanceOf(address) on both the wrapper and original contracts via a public RPC. no API key, no middleman.
or from your terminal: $ cast call 0xC0BC...1410 "balanceOf(address)(uint)" 0x...
// walkthrough · use your own wallet · we don't custody
$ acquire.sh -- step-by-step
01
verify the contract
paste the address into etherscan and confirm the source.
etherscan.io/address/0x1130...9b758 ↗
02
add to your wallet
in MetaMask or Rabby: Import token → paste address. or use the wrapper for DEX compatibility.
original: 0x1130547436810db920fa73681c946fea15e9b758
wrapper:  0xc0bc84e95864bdfdcd1ccfb8a3aa522e79ca1410
symbol:   $btce  |  decimals: 8
03
swap on uniswap
available on Ethereum via the wrapper contract ($btce).
uniswap.org/explore/tokens/ethereum/0xc0bc...1410 ↗
04
send to cold storage
if you're keeping it: move it. don't leave a 2015 artifact in a hot wallet.
$ cast send $btc "transfer(address,uint256)" \
  $COLD_ADDR 100_00000000
contracts -- copy + verify
original (2015)
0x1130547436810db920fa73681c946fea15e9b758
wrapper ($btce)
0xc0bc84e95864bdfdcd1ccfb8a3aa522e79ca1410
[ etherscan ] [ eth history ] [ uniswap ] [ coingecko ]
!! warn · self-custody
  • this site does not custody, sell, or broker. it is a static page.
  • verify the address against at least two independent sources.
  • liquidity is thin. price is whatever the next person pays.
  • not investment advice. it's a 10-year-old artifact. treat it like one.
// "don't trust, verify" -- every line above can be reproduced from your own shell against your own RPC.
// long-form
$ cat manifesto
manifesto.md● read-only

On the night of November 3, 2015, somebody did the obvious thing.

Mist Wallet Beta 3 had just shipped, and for the first time you could deploy a token on Ethereum from a GUI. Someone did the obvious thing: named it bitcoin, set the supply to 21,000,000, and deployed. Twenty-one million units, eight decimals. Same name. Same number. Different chain.

They tried it once with a smaller supply, minutes earlier, like calibrating a printing press. Then they did the real one. Only one of them got the number right.

ERC-20 didn't exist yet. EIP-20 was proposed by Fabian Vogelsteller 16 days later, on November 19, 2015, and wasn't finalized until September 2017. The code on the previous page is what tokens looked like before there was a name for them -- a constructor named after its contract, events fired without the emit keyword, no SafeMath, no SPDX, no pragma. Pre-convention. Pre-everything.

The original contract has never been migrated, never been upgraded. There is no proxy, no admin key still warm. In 2024, a wrapper was deployed to make it tradeable on DEXes -- but the 2015 contract underneath is untouched. It returns the same fields it returned in 2015, to anyone who asks, from any node on the network.

That is the whole point. Provenance you can verify with a single RPC call. A meme older than memecoins. A piece of Ethereum from 2015 that nobody tidied up later.

The other bitcoins on Ethereum came later. Most are wrapped versions of the real bitcoin, sat behind custodians and bridges. Useful! Different thing. This one isn't a wrapper for anything. It is its own object -- named bitcoin, 21M supply, deployed in 2015 by a user who saw the deploy button and did the obvious thing.

Don't trust this page. Verify it. Then decide whether ten years of consistent state, on the chain that invented tokens, is the kind of thing you want to hold.

// faq
// identity · design system · token mark
$ cat brand/README.md
concentric semantics
outer circle -- the token shape. the shape every wallet and DEX expects.
inscribed diamond -- Ethereum. the chain it lives on.
centered B -- bitcoin. the thing the contract is named.
cardinal ticks -- block-clock detail. hides below ~28px for legibility.
one SVG, no font dependency. the B is path-drawn -- survives any rendering pipeline.
// scale · 16 → 192px
// variants · four contexts
// lockup · mark + wordmark
btceth
btceth
// in context · wallet · token list
wallet · light theme
bitcoin
btc · pre-ERC20
21,000,000
wallet · dark theme
bitcoin
btc · pre-ERC20
21,000,000
// palette
// download
PNGs rendered client-side from SVG at the selected size. no server, no tracking.
// usage
DEX / wallet listings -- use phosphor variant at 1024x1024 PNG.
block explorers -- use mono-dark on white background.
dark UI embeds -- use phosphor or mono-light.
print / stickers -- use inverse (green bg, black mark).
font -- JetBrains Mono. no other font dependencies.
the mark is one SVG with no text nodes. the B is path-drawn. cardinal ticks auto-hide below 28px.