Rubicon Overview
An Order Book Protocol for Ethereum; an Order Book Protocol for the World!


For Users and Interested Readers:

Visit the FAQ for answers to common questions, or visit our guides.
If you need support, join the Rubicon Discord and send a message in the #support channel.

For Developers:

In our documentation you will find:
  • Dedicated pages for each of the Rubicon smart contracts (e.g. RubiconMarket) with an outline of key functions and parameters
  • A list of active Rubicon Deployments and associated contract addresses
  • ​Instructions for starting the Rubicon protocol locally
  • A list of Audits and security reviews on the Rubicon protocol
  • ​APIs for querying Rubicon data using subgraphs
You can read the Rubicon v1 code on GitHub​

What is Rubicon?

Rubicon is an order book protocol for Ethereum, which makes it an order book protocol for the world! It can be used to swap tokens, trade with limit orders, or earn by providing liquidity in Rubicon Pools. Try it today on the Rubicon app
Rubicon is built on Ethereum L2 networks to give traders cheap transactions and instant trade confirmations. Rubicon v1 is live on Optimism, with support for more L2s coming soon!
If you are interested in learning more, building on the Rubicon protocol, joining the team, or just want to send a note, you can reach us at [email protected].

Rubicon v1 Protocol Overview

The cornerstone of the Rubicon protocol is the RubiconMarket contract, which implements order books for the peer-to-peer trading of ERC-20 tokens.
Rubicon Pools are the native liquidity pools of the Rubicon order books. It is a system of smart contracts that enables passive liquidity providers (LPs) to deposit tokens in a pool, where active market makers (strategists) use the pool assets on the order books. Yield from market-making goes to LPs, and strategists earn a performance fee.
Rubicon v1 Architecture

Developers: Start Rubicon Protocol Locally

$ git clone
$ cd rubicon_protocol && npm i
$ npm i --save-dev [email protected]
$ truffle init
$ 'n' for overwriting contracts
$ 'n' for overwriting migrations
$ (in separate terminal) ganache-cli
Also make sure that you comment out the lines in truffle-config.js that say 'development: ' and include localhost under networks so that you can connect to Ganache.
$ truffle migrate -- deploys contracts to development network, i.e. localhost
$ truffle test -- run the set of tests provided in the test folder of repo
Last modified 6d ago