Skip to content


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?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Blockbin Build Status

  • Blockbin: a website to let anybody store content in the Ethereum blockchain. It's a Pastebin-like app hosted on the Ethereum blockchain. Hence "blockbin".
  • Cube: a blob stored via Blockbin on the Ethereum blockchain

Hacking locally


Before you start, make sure you have the following:

  • npm: tested with npm version 5.10.0
  • node: tested with v8.6.0
  • platform: tested on MacOSX High Sierra, but as long as you can install node/npm on your platform you should be set

Smart Contract Development

To install the dapp dependencies:

$ npm install --prefix=dapp

To run your own blockchain locally (and more importantly: to setup an account with some ether to be able to perform transactions):

  • Download Metamask
  • (one-time only): cd dapp && node_modules/.bin/testrpc, then create a Metamask account while pointing at this network ("Localhost 8545").
  • (one-time only): in Metamask, click on "..." next to your account, then "Export Private Key". Save it somewhere!
  • (one-time only): shut down your private network
  • Run npm run ethereum --prefix=dapp. This should prompt you for your private key and will start the network with your account provisioned with 300 ETH, enough to perform loads of transactions!

To compile and deploy the Blockbin contract onto your local blockchain:

$ npm run deploy --prefix=dapp

To interact and test some contract functions manually:

$ cd dapp
$ ./node_modules/.bin/truffle console
truffle(development)> bb = Blockbin.deployed()
truffle(development)> bb.then(function(instance) { instance.dumpCube('oh hai there');})

Webapp development

The webapp code lives in blockbin/. We use React, so any general React tips should apply here as well.

To install the webapp dependencies:

$ npm install --prefix=webapp

To run a local version of the webapp:

$ npm start --prefix=webapp

To debug problems with the production bundle:

$ npm run-script build --prefix=webapp
$ cd webapp
$ ./node_modules/.bin/serve -s build


To test the dapp:

$ npm run ethereum --prefix=dapp
# In another shell:
$ npm run test --prefix=dapp

To test the webapp:

$ npm run test --prefix=webapp



Run ./bin/deploy-webapp

Smart contract

To deploy the contract to the Ropsten test network:

  • Create an Infura account
  • Create a Metamask account if you don't have one already
  • Provision your Ropsten network account with Ether. The easiest is to request 1 ETH from
  • Create a dapp/.env file with METAMASK_DEN_MNEMONIC set to your Metamask den mnemonic and INFURA_ACCESS_TOKEN set to your Infura access token. This file is used by dapp/truffle.js

Once the above is done:

$ cd dapp
$ ./node_modules/.bin/truffle migrate --reset --network ropsten

To deploy the contract to Mainnet, try deploying it to Ropsten first to minimize the chances of mistakes (see above). Once you've done that, provision your Mainnet account with Ether. The easiest is to send yourself some Ether via Coinbase. Then, when you're ready:

$ cd dapp
$ ./node_modules/.bin/truffle migrate --reset --network mainnet

Congratulations, you've just spent some real money!

Note: if the migration fails for some reason, you can retry but omit the --reset flag! Otherwise you'll spent useless money to perform the already-confirmed steps once again.


We're open and friendly! Check out blockbin/issues and make a pull request!


Website to let anybody store content in the Ethereum blockchain and generate a shareable URL to retrieve it at any time







No releases published


No packages published

Contributors 4