This is the Ethereum JavaScript API which connects to the Generic JSON RPC spec.
You need to run a local or remote Ethereum node to use this library.
Please read the documentation for more.
Installation
Node
Yarn
Meteor
meteor npm install --save web3@1.x
Usage
import Web3 from 'web3'; const web3 = new Web3('ws://localhost:8546'); console.log(web3); > { eth: ... , shh: ... , utils: ..., ... }
Additionally you can set a provider using web3.setProvider() (e.g. WebsocketProvider)
web3.setProvider('ws://localhost:8546'); // or web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));
There you go, now you can use it:
web3.eth.getAccounts() .then(console.log);
Usage with TypeScript
We support types within the repo itself. Please open an issue here if you find any wrong types.
You can use web3.js as follows:
import Web3 from 'web3'; const web3 = new Web3("ws://localhost:8546");
If you are using the types in a commonjs module like for example a node app you just have to enable esModuleInterop in your tsconfig compile option, also enable allowSyntheticDefaultImports for typesystem compatibility:
"compilerOptions": { "allowSyntheticDefaultImports": true, "esModuleInterop": true, ....
Documentation
Documentation can be found at read the docs
Contributing
- All contributions have to go into the 1.0 branch
- Please follow the code style of the other files, we use 4 spaces as tabs.
Requirements
- Node.js
- npm
Commands
npm install # install all dependencies for npm run bootstrap npm run bootstrap # install all dependencies and symlinks the internal modules for all modules npm run build # runs rollup npm run test # runs all tests npm run clean # removes all the node_modules folders in all modules
Support
Community
Similar libraries in other languages
- Python Web3.py
- Haskell hs-web3
- Java web3j
- Scala web3j-scala
- Purescript purescript-web3
- PHP web3.php