Example Bots
read_markets — Read-Only Market Discovery
cargo run --example read_marketsuse strike_sdk::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
tracing_subscriber::fmt::init();
let client = StrikeClient::new(StrikeConfig::bsc_testnet()).build()?;
// Fetch markets from indexer
let markets = client.indexer().get_markets().await?;
println!("found {} markets", markets.len());
for market in &markets {
println!(
" market {} | status: {} | expiry: {} | batch_interval: {}s",
market.id, market.status, market.expiry_time, market.batch_interval,
);
}
// Read on-chain state
let active_count = client.markets().active_market_count().await?;
println!("active markets: {active_count}");
// Get orderbook for first active market
let active_markets: Vec<_> = markets.iter().filter(|m| m.status == "active").collect();
if let Some(market) = active_markets.first() {
let ob = client.indexer().get_orderbook(market.id as u64).await?;
println!("\norderbook for market {}:", market.id);
for level in &ob.bids {
println!(" bid: tick {} | {} lots", level.tick, level.lots);
}
for level in &ob.asks {
println!(" ask: tick {} | {} lots", level.tick, level.lots);
}
}
Ok(())
}place_orders — Full Trading Lifecycle
stream_events — Event-Driven Architecture
simple_bot — Minimal Market Maker Skeleton
Tips for Building a Real Bot
Last updated