# Gnosis JavaScript Library Documentation

In order to follow these docs, you will need to be comfortable working in your OS’s shell, writing JavaScript, and working with npm. A working knowledge of Ethereum, Solidity, and Truffle would greatly ease the use of this library, but is not strictly necessary for getting started. The usage of a VCS such as Git is also encouraged, but is not explained here.

The Gnosis JavaScript library should work for any OS. It has the following system requirements:

- Node.js (versions >= 7 should work)
- NPM (should be installed with Node.js, and versions >= 5 should work)
- Git (optional)

Contents

- Installation
  - Setting up a project using npm
  - Browser use
  - Integration with webpack projects (advanced)
  - Setting up an Ethereum JSON RPC
    - Ganache-cli and private chain providers
    - MetaMask
- API Overview
  - Note about Promises
  - Truffle contract abstractions
    - Note about `async` and `await`
  - Wrapping common operations
    - Web3 options
    - Gas estimations
  - (Advanced) Notes for developers who use `web3`
- Events, Oracles and Markets
  - Questions About the Future, Oracles, and Trust
  - Events and Collateral
  - Markets and Automated Market Makers
  - Events with Scalar Outcomes
- LMSR Primer
  - Bounded Loss from the \(b\) Parameter
  - Marginal Price of Outcome Tokens
  - LMSR Calculation Functions
- Contributing Guide
  - Installation
  - Development
    - Editing Source
    - Building
    - Running the dev server
    - Running the tests
    - Building these docs
  - Pull Request Etiquette
- API Reference
  - Classes
  - Methods