2014-09-30 20:55:07 +00:00
# Ethereum JavaScript API
2015-04-20 10:08:42 +00:00
[![Join the chat at https://gitter.im/ethereum/web3.js ](https://badges.gitter.im/Join%20Chat.svg )](https://gitter.im/ethereum/web3.js?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2015-03-22 13:08:22 +00:00
2015-01-26 23:54:21 +00:00
This is the Ethereum compatible [JavaScript API ](https://github.com/ethereum/wiki/wiki/JavaScript-API )
2015-02-27 11:41:07 +00:00
which implements the [Generic JSON RPC ](https://github.com/ethereum/wiki/wiki/JSON-RPC ) spec. It's available on npm as a node module, for bower and component as an embeddable js and as a meteor.js package.
2014-09-30 20:55:07 +00:00
2015-03-30 12:52:14 +00:00
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![dependency status][dep-image]][dep-url] [![dev dependency status][dep-dev-image]][dep-dev-url][![Coverage Status][coveralls-image]][coveralls-url][![Stories in Ready][waffle-image]][waffle-url]
2014-11-05 20:33:28 +00:00
2014-11-10 13:26:10 +00:00
<!-- [![browser support ](https://ci.testling.com/ethereum/ethereum.js.png )](https://ci.testling.com/ethereum/ethereum.js) -->
2014-11-05 20:33:28 +00:00
2015-02-27 11:41:07 +00:00
You need to run a local ethrereum node to use this library.
2015-02-27 08:54:39 +00:00
[Documentation ](https://github.com/ethereum/wiki/wiki/JavaScript-API )
2014-11-06 20:51:37 +00:00
## Installation
2014-11-05 17:46:01 +00:00
2014-11-06 20:51:37 +00:00
### Node.js
2014-11-05 17:46:01 +00:00
2015-04-09 22:27:47 +00:00
$ npm install web3
2015-02-27 08:54:39 +00:00
### Meteor.js
2015-04-13 10:15:45 +00:00
$ meteor add ethereum:web3
2014-11-05 17:46:01 +00:00
2015-03-09 09:28:14 +00:00
### As Browser module
2014-11-05 17:46:01 +00:00
Bower
2015-04-09 22:27:47 +00:00
$ bower install web3
2014-11-05 17:46:01 +00:00
Component
2015-04-09 22:27:47 +00:00
$ component install ethereum/web3.js
2014-11-05 17:46:01 +00:00
2015-03-09 09:28:14 +00:00
* Include `ethereum.min.js` in your html file. (not required for the meteor package)
* Include [bignumber.js ](https://github.com/MikeMcl/bignumber.js/ ) (not required for the meteor package)
2014-11-05 17:46:01 +00:00
2014-11-06 20:51:37 +00:00
## Usage
2015-04-13 10:15:45 +00:00
Use the `web3` object directly from global namespace:
2015-04-09 22:27:47 +00:00
console.log(web3); // {eth: .., shh: ...} // it's here!
2015-02-27 08:54:39 +00:00
Set a provider (QtSyncProvider, HttpProvider)
2014-11-05 17:46:01 +00:00
2015-02-27 08:54:39 +00:00
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
2014-11-05 17:46:01 +00:00
There you go, now you can use it:
```
2015-01-26 23:54:21 +00:00
var coinbase = web3.eth.coinbase;
2015-02-19 17:37:09 +00:00
var balance = web3.eth.getBalance(coinbase);
2014-11-05 17:46:01 +00:00
```
For another example see `example/index.html` .
2015-02-27 08:54:39 +00:00
2015-01-11 16:54:36 +00:00
## Contribute!
### Requirements
* Node.js
* npm
```bash
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
sudo apt-get install nodejs-legacy
```
2015-01-15 13:30:34 +00:00
### Building (gulp)
2014-11-05 17:46:01 +00:00
2015-01-15 13:30:34 +00:00
```bash
2015-01-11 16:54:36 +00:00
npm run-script build
```
2014-11-05 17:46:01 +00:00
2015-01-15 13:30:34 +00:00
### Testing (mocha)
2014-09-30 20:55:07 +00:00
2015-01-15 13:30:34 +00:00
```bash
2015-01-11 16:54:36 +00:00
npm test
```
2015-03-06 00:14:01 +00:00
### Testing (karma)
2015-03-06 09:06:50 +00:00
Karma allows testing within one or several browsers.
2015-03-06 00:14:01 +00:00
```bash
2015-03-06 09:06:50 +00:00
npm run-script karma # default browsers are Chrome and Firefox
npm run-script karma -- --browsers="Chrome,Safari" # custom browsers
2015-03-06 00:14:01 +00:00
```
2014-09-30 20:55:07 +00:00
**Please note this repo is in it's early stage.**
2014-09-30 20:58:09 +00:00
2015-03-03 23:27:06 +00:00
If you'd like to run a Http ethereum node check out
[cpp-ethereum ](https://github.com/ethereum/cpp-ethereum ).
2014-09-30 20:58:09 +00:00
2015-03-03 23:27:06 +00:00
Install ethereum and spawn a node:
2014-09-30 20:58:09 +00:00
```
2015-03-03 23:27:06 +00:00
eth -j
2014-09-30 20:58:09 +00:00
```
2014-11-05 20:33:28 +00:00
2015-04-10 08:07:15 +00:00
[npm-image]: https://badge.fury.io/js/web3.png
[npm-url]: https://npmjs.org/package/web3
[travis-image]: https://travis-ci.org/ethereum/web3.js.svg
[travis-url]: https://travis-ci.org/ethereum/web3.js
[dep-image]: https://david-dm.org/ethereum/web3.js.svg
[dep-url]: https://david-dm.org/ethereum/web3.js
2015-06-10 10:14:44 +00:00
[dep-dev-image]: https://david-dm.org/ethereum/web3.js/dev-status.svg
2015-04-10 08:07:15 +00:00
[dep-dev-url]: https://david-dm.org/ethereum/web3.js#info=devDependencies
[coveralls-image]: https://coveralls.io/repos/ethereum/web3.js/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/r/ethereum/web3.js?branch=master
[waffle-image]: https://badge.waffle.io/ethereum/web3.js.svg?label=ready& title=Ready
[waffle-url]: http://waffle.io/ethereum/web3.js
2015-01-26 23:54:21 +00:00