2014-09-30 15:55:07 -05:00
# Ethereum JavaScript API
2015-01-26 17:54:21 -06:00
This is the Ethereum compatible [JavaScript API ](https://github.com/ethereum/wiki/wiki/JavaScript-API )
2014-11-05 11:46:01 -06:00
which implements the [Generic JSON RPC ](https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC ) spec. It's available on npm as a node module and also for bower and component as an embeddable js
2014-09-30 15:55:07 -05:00
2014-11-09 13:30:27 -06: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]
2014-11-05 14:33:28 -06:00
2014-11-10 07:26:10 -06:00
<!-- [![browser support ](https://ci.testling.com/ethereum/ethereum.js.png )](https://ci.testling.com/ethereum/ethereum.js) -->
2014-11-05 14:33:28 -06:00
2014-11-06 14:51:37 -06:00
## Installation
2014-11-05 11:46:01 -06:00
2014-11-06 14:51:37 -06:00
### Node.js
2014-11-05 11:46:01 -06:00
npm install ethereum.js
2014-11-06 14:51:37 -06:00
### For browser
2014-11-05 11:46:01 -06:00
Bower
bower install ethereum.js
Component
component install ethereum/ethereum.js
* Include `ethereum.min.js` in your html file.
2015-01-26 17:54:21 -06:00
* Include [bignumber.js ](https://github.com/MikeMcl/bignumber.js/ )
2014-11-05 11:46:01 -06:00
2014-11-06 14:51:37 -06:00
## Usage
2014-11-05 11:46:01 -06:00
Require the library:
var web3 = require('web3');
Set a provider (QtProvider, WebSocketProvider, HttpRpcProvider)
var web3.setProvider(new web3.providers.WebSocketProvider('ws://localhost:40404/eth'));
There you go, now you can use it:
```
2015-01-26 17:54:21 -06:00
var coinbase = web3.eth.coinbase;
var balance = web3.eth.balanceAt(coinbase);
2014-11-05 11:46:01 -06:00
```
For another example see `example/index.html` .
2015-01-11 10:54:36 -06:00
## Contribute!
### Requirements
* Node.js
* npm
* gulp (build)
* mocha (tests)
```bash
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
sudo apt-get install nodejs-legacy
```
2015-01-15 07:30:34 -06:00
### Building (gulp)
2014-11-05 11:46:01 -06:00
2015-01-15 07:30:34 -06:00
```bash
2015-01-11 10:54:36 -06:00
npm run-script build
```
2014-11-05 11:46:01 -06:00
2015-01-15 07:30:34 -06:00
### Testing (mocha)
2014-09-30 15:55:07 -05:00
2015-01-15 07:30:34 -06:00
```bash
2015-01-11 10:54:36 -06:00
npm test
```
2014-09-30 15:55:07 -05:00
**Please note this repo is in it's early stage.**
2014-09-30 15:58:09 -05:00
If you'd like to run a WebSocket ethereum node check out
[go-ethereum ](https://github.com/ethereum/go-ethereum ).
To install ethereum and spawn a node:
```
go get github.com/ethereum/go-ethereum/ethereum
ethereum -ws -loglevel=4
```
2014-11-05 14:33:28 -06:00
2014-11-09 13:30:27 -06:00
[npm-image]: https://badge.fury.io/js/ethereum.js.png
[npm-url]: https://npmjs.org/package/ethereum.js
2014-11-10 06:31:51 -06:00
[travis-image]: https://travis-ci.org/ethereum/ethereum.js.svg
[travis-url]: https://travis-ci.org/ethereum/ethereum.js
[dep-image]: https://david-dm.org/ethereum/ethereum.js.svg
[dep-url]: https://david-dm.org/ethereum/ethereum.js
[dep-dev-image]: https://david-dm.org/ethereum/ethereum.js/dev-status.svg
2015-01-11 10:54:36 -06:00
[dep-dev-url]: https://david-dm.org/ethereum/ethereum.js#info=devDependencies
2015-01-26 17:54:21 -06:00