Skip to content

TechieBoy/polymarket-rs-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polymarket Rust Client   Latest Version Docs Badge

An async rust client for interacting with Polymarket.

Why use this instead of the official client?

  1. You get to write Rust!
  2. Most calls are anywhere from 1.5x to upto 4x faster.
  3. Upto 10x less memory usage.

Some benchmarks on my machine:

polymarket-rs-client Official Python client
Create a order with EIP-712 signature. 266.5 ms ± 28.6 ms 1.127 s ± 0.047 s
Fetch and parse json(simplified markets). 404.5 ms ± 22.9 ms 1.366 s ± 0.048 s
Fetch markets. Mem usage 88,053 allocs, 81,823 frees, 15,945,966 bytes allocated 211,898 allocs, 202,962 frees, 128,457,588 bytes allocated

Installing

cargo add polymarket-rs-client

The client internally uses a reqwest Client, so you will also need the tokio runtime.

cargo add -F rt-multi-thread,macros tokio

For representing order amounts and sizes, the client uses the rust-decimal crate. It is recommended to install this crate as well.

cargo add rust-decimal

Usage

Create an instance of the ClobClient to interact with the CLOB API. Note that the prerequisite allowances must be set before creating and sending an order as described here.

use polymarket_rs_client::ClobClient;

use std::env;

const HOST: &str = "https://clob.polymarket.com";
const POLYGON: u64 = 137;

#[tokio::main]
async fn main() {
    let private_key = env::var("PK").unwrap();
    let nonce = None;

    let mut client = ClobClient::with_l1_headers(HOST, &private_key, POLYGON);
    let keys = client.create_or_derive_api_key(nonce).await.unwrap();
    client.set_api_creds(keys);

    let o = client.get_sampling_markets(None).await.unwrap();
    dbg!(o);
}

The ClobClient implements the same API as the official python client. All available functions are listed in the docs.

About

A rust client for interacting with polymarket.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages