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