# Solana JavaScript API

This is the Solana Javascript API built on the Solana JSON RPC API

Latest API Documentation

## Installation

### Yarn

    $ yarn add @solana/web3.js

### npm

    $ npm install --save @solana/web3.js

### Browser bundle

    <script src="https://github.com/solana-labs/solana-web3.js/releases/download/v0.0.6/solanaWeb3.min.js"></script>

### BPF program development

clang-7.0 must be installed to build BPF programs, such as `examples/bpf-c-noop/`. See `bpf-sdk/README.md` for installation details

## Usage

### Javascript

    const solanaWeb3 = require('@solana/web3.js');
    console.log(solanaWeb3);

### ES6

    import solanaWeb3 from '@solana/web3.js';
    console.log(solanaWeb3);

### Browser bundle

    // `solanaWeb3` is provided in the global namespace by the `solanaWeb3.min.js` script bundle.
    console.log(solanaWeb3);

## Local Network

The `solana-localnet` program is provided to easily start a test Solana network locally on your machine. Docker must be installed. The JSON RPC endpoint of the local network is `http://localhost:8899`.

To start, first fetch the latest Docker image by running:

    $ npx solana-localnet update

Then run the following command to start the network

    $ npx solana-localnet up

While the network is running logs are available with:

    $ npx solana-localnet logs -f

Stop the network with:

    $ npx solana-localnet down

## Flow

A Flow library definition is provided at module.flow.js. Add the following line under the [libs] section of your project's .flowconfig to activate it:

    [libs]
    node_modules/@solana/web3.js/module.flow.js

## Examples

See the examples/ directory for small snippets.

Standalone examples:

- Web wallet: https://github.com/solana-labs/example-webwallet
- Tic-tac-toe: https://github.com/solana-labs/example-tictactoe

## Releases

Releases are available on Github and npmjs.com

Each Github release features a tarball containing API documentation and a minified version of the module suitable for direct use in a browser environment (<script> tag)