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(¶ms, 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;