Skip to main content

Crate polyoxide_clob

Crate polyoxide_clob 

Source
Expand description

§polyoxide-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 polyoxide_clob::{Account, Chain, ClobBuilder, CreateOrderParams, OrderKind, OrderSide};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Load account from environment variables
    let account = Account::from_env()?;

    // Create CLOB client
    let clob = ClobBuilder::new()
        .with_account(account)
        .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,
        order_type: OrderKind::Gtc,
        post_only: false,
        expiration: None,
        funder: None,
        signature_type: None,
    };

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

    Ok(())
}

Re-exports§

pub use core::chain::Chain;
pub use core::chain::Contracts;
pub use account::Account;
pub use account::AccountConfig;
pub use account::Credentials;
pub use account::Signer;
pub use account::Wallet;
pub use api::account::BalanceAllowanceResponse;
pub use api::account::BuilderTrade;
pub use api::account::ListBuilderTrades;
pub use api::account::ListBuilderTradesResponse;
pub use api::account::ListClobTrades;
pub use api::account::ListTradesResponse;
pub use api::account::MakerOrder;
pub use api::account::Trade;
pub use api::auth::ApiKeyInfo;
pub use api::auth::ApiKeyResponse;
pub use api::auth::ClosedOnlyResponse;
pub use api::auth::ReadonlyApiKeyResponse;
pub use api::auth::ValidateKeyResponse;
pub use api::health::Health;
pub use api::health::ServerTimeResponse;
pub use api::markets::BookParams;
pub use api::markets::CalculatePriceResponse;
pub use api::markets::LastTradePriceResponse;
pub use api::markets::ListMarketsResponse;
pub use api::markets::LiveActivityEvent;
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::markets::SpreadResponse;
pub use api::notifications::Notification;
pub use api::orders::BatchCancelResponse;
pub use api::orders::ListOrdersResponse;
pub use api::orders::OpenOrder;
pub use api::orders::OrderResponse;
pub use api::orders::OrderScoringResponse;
pub use api::rewards::RewardEarnings;
pub use api::rewards::RewardMarket;
pub use api::rewards::RewardMarketEarning;
pub use api::rewards::RewardPercentages;
pub use api::rewards::RewardTotalEarnings;
pub use api::rfq::CreateRfqQuoteParams;
pub use api::rfq::CreateRfqRequestParams;
pub use api::rfq::RfqConfig;
pub use api::rfq::RfqPaginatedResponse;
pub use api::rfq::RfqQuote;
pub use api::rfq::RfqQuoteResponse;
pub use api::rfq::RfqRequest;
pub use api::rfq::RfqRequestResponse;
pub use client::Clob;
pub use client::ClobBuilder;
pub use client::CreateOrderParams;
pub use client::SignedOrderPayload;
pub use error::ClobError;
pub use types::Order;
pub use types::OrderKind;
pub use types::OrderSide;
pub use types::ParseTickSizeError;
pub use types::PartialCreateOrderOptions;
pub use types::SignatureType;
pub use types::SignedOrder;
pub use types::TickSize;

Modules§

account
Account module for credential management and signing operations.
api
API namespace modules for organizing CLOB operations
client
core
Core blockchain primitives for CLOB order signing.
error
request
types
utils