Read and write.
Slack, Discord, Stripe, GitHub, OpenAI, weather feeds, sports tickers. If it has an HTTP endpoint, your contract can call it.
Call any API from your Solana smart contract in one line.
Your contract wants to send a Slack message into #liquidations the moment a position closes. Here's how to do that in one line.
Pick a destination from the library, or define your own from any HTTP API.
method : POST
url : api.example.com/{path}
headers : { ... }
params : { ... }
returns : { ... }
One line. Send the params, receive a typed response — call it like any other function.
// one call: params in, typed response out
let resp = chord::slack_post_message(SlackPostMessageParams {
channel: "#liquidations".into(),
text: format!("Position {id} liquidated · {amt} SOL"),
})?;
// resp: SlackPostMessageResponse { ok: true, ts: "1714…" }
The oracle listens, runs the HTTP request, and writes the typed result back on-chain. Sub-second round-trip.
on-chain emit!(ActionRequested { slug, params_json });
▼
oracle POST hooks.slack.com → 200 OK · 142ms
▼
on-chain emit!(TaskCallback { request_id, result_json });
→ SlackPostMessageResponse { ok: true, ts: "1714…" }
Most oracles push price data on-chain. Chord lets your smart contract make actual HTTP calls — Slack messages, Stripe charges, OpenAI completions, anything with an endpoint — and get typed responses back.
Slack, Discord, Stripe, GitHub, OpenAI, weather feeds, sports tickers. If it has an HTTP endpoint, your contract can call it.
Send params, receive a typed Rust response. The SDK handles serialisation; your contract handles the result. Sub-second round-trip from emit to callback.
Slack, Discord, GitHub, SendGrid, PagerDuty, HubSpot, Airtable, Notion, Datadog, OpsGenie, OpenRouter — pre-built and tested. Or define your own action against any HTTP API in a few lines.
14 services seeded today, 29 typed actions. Each is a one-line call from your contract. Add your own against any HTTP API in a few lines.
First feeds are live on devnet. Mainnet operator onboarding opens in Q3. Two ways to get involved.
Drop a feed account into your program. Standard PDA semantics, sub-second updates, no SDK lock-in.
Join the operator set. Fetch APIs, sign updates, earn from confirmed signature work.