Crate polyte_clob

Crate polyte_clob 

Source
Expand description

§polyte-clob

Rust client library for Polymarket CLOB (Centralized Limit Order Book) API.

§Features

  • Order creation, signing, and posting with EIP-712
  • Market data and order book retrieval
  • Account balance and trade history
  • HMAC-based L2 authentication
  • Type-safe API with idiomatic Rust patterns

§Example

use polyte_clob::{Chain, Clob, CreateOrderParams, OrderSide, Wallet, Credentials};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let private_key = "0x..."; // Load this from environment variables

    // Set up credentials (from API)
    let credentials = Credentials {
        key: "<api_key>".to_string(),
        secret: "<secret>".to_string(),
        passphrase: "<passphrase>".to_string(),
    };

    // Create CLOB client
    let clob = Clob::builder(private_key, credentials)?
        .chain(Chain::PolygonMainnet)
        .build()?;

    // Place an order
    let params = CreateOrderParams {
        token_id: "token_id".to_string(),
        price: 0.52,
        size: 100.0,
        side: OrderSide::Buy,
        expiration: None,
    };

    let response = clob.place_order(&params).await?;
    println!("Order ID: {:?}", response.order_id);

    Ok(())
}

Re-exports§

pub use api::account::BalanceAllowanceResponse;
pub use api::account::Trade;
pub use api::markets::ListMarketsResponse;
pub use api::markets::Market;
pub use api::markets::MarketToken;
pub use api::markets::MidpointResponse;
pub use api::markets::OrderBook;
pub use api::markets::OrderLevel;
pub use api::markets::PriceResponse;
pub use api::orders::CancelResponse;
pub use api::orders::OpenOrder;
pub use api::orders::OrderResponse;
pub use client::Clob;
pub use client::ClobBuilder;
pub use client::CreateOrderParams;
pub use core::chain::Chain;
pub use core::chain::Contracts;
pub use error::ClobError;
pub use error::Result;
pub use types::Credentials;
pub use types::Order;
pub use types::OrderSide;
pub use types::SignatureType;
pub use types::SignedOrder;
pub use types::TickSize;
pub use wallet::Wallet;

Modules§

api
API namespace modules for organizing CLOB operations
client
core
error
request
signer
types
utils
wallet