Client libraries for integrating Stellar Intel into your application.
None of the SDK packages exist on their registries yet: @stellarintel/sdk, @stellarintel/mcp, and @stellarintel/publisher are not on npm, stellarintel is not on PyPI, and stellar-intel-reputation is not on crates.io — running their install commands returns 404 today. The packages are built but not yet published. Until they ship, use the HTTP API directly (examples below).
@stellarintel/sdk — Not yet published (npm, v4)
Status: Not published — The typed SDK is built but not yet on npm; it ships as a v4 deliverable.
Until it ships, use the HTTP API directly (examples below).
You can use the HTTP API directly from any TypeScript or JavaScript application today:
// Minimal typed fetch wrapper
const BASE = 'https://stellar-intel.vercel.app';
export async function getRates(corridorId: string, amount = '100') {
const res = await fetch(`${BASE}/api/rates/${corridorId}?amount=${amount}`);
if (!res.ok) throw new Error(`rates ${res.status}`);
return res.json();
}
export async function getReputation(anchorId: string) {
const res = await fetch(`${BASE}/api/reputation/${anchorId}`);
if (!res.ok) throw new Error(`reputation ${res.status}`);
return res.json();
}
export async function submitOfframpIntent(body: unknown) {
const res = await fetch(`${BASE}/api/intent/offramp`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify(body),
});
if (!res.ok) throw new Error(`intent ${res.status}`);
return res.json();
}Types can be imported from the repo: OfframpIntent, SignedIntentEnvelope,IntentV1 in types/intent.ts.
stellarintel — Not yet published (PyPI)
You can use the HTTP API directly from any Python application today:
import httpx
BASE = "https://stellar-intel.vercel.app"
def get_rates(corridor_id: str, amount: str = "100") -> dict:
resp = httpx.get(
f"{BASE}/api/rates/{corridor_id}",
params={"amount": amount}
)
resp.raise_for_status()
return resp.json()
def get_reputation(anchor_id: str) -> dict:
resp = httpx.get(f"{BASE}/api/reputation/{anchor_id}")
resp.raise_for_status()
return resp.json()
def get_leaderboard(corridor: str | None = None) -> dict:
params = {}
if corridor:
params["corridor"] = corridor
resp = httpx.get(
f"{BASE}/api/reputation/leaderboard",
params=params
)
resp.raise_for_status()
return resp.json()stellar-intel-reputation — Not yet published (crates.io)
The stellar-intel-reputation crate provides a typed client for reading reputation data from the Soroban oracle contract on-chain. It is built but not yet published to crates.io — depend on it from this repository until then:
[dependencies]
stellar-intel-reputation = { git = "https://github.com/ezedike-evan/stellar-intel", package = "stellar-intel-reputation" }
soroban-sdk = "22.0"use soroban_sdk::{Address, Env, String};
use stellar_intel_reputation::ReputationReader;
fn read_score(env: Env, oracle: Address, anchor_id: String, corridor: String) {
let reader = ReputationReader::new(&env, oracle);
// Composite score published for this (anchor, corridor) pair.
let score = reader.corridor_score(anchor_id.clone(), corridor.clone());
// Raw settlement totals for the same pair.
let aggregate = reader.corridor_aggregate(anchor_id.clone(), corridor);
// Client-derived success-rate score over the last 20 outcomes, when no
// metrics have been published yet for that specific corridor.
let fallback = reader.score_bps(anchor_id, 20);
}For an ordinary Rust program that calls the HTTP API, use the stellar-intel-client crate, an async REST client built on reqwest with retries and idempotency keys on by default. It is not yet published to crates.io either:
[dependencies]
stellar-intel-client = { git = "https://github.com/ezedike-evan/stellar-intel", package = "stellar-intel-client" }Or call the HTTP API directly with reqwest:
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let resp = client
.get("https://stellar-intel.vercel.app/api/rates/usdc-ngn")
.query(&[("amount", "100")])
.send()
.await?
.json::<serde_json::Value>()
.await?;
println!("{:#}", resp);
Ok(())
}@stellarintel/mcp — Not yet published (npm)
The MCP package exposes Stellar Intel's off-ramp routing to MCP-capable AI agents. The deployed app serves the MCP server directly, so a client needs only a URL — no clone, no npm install, no local process:
https://stellar-intel.vercel.app/api/mcp{
"mcpServers": {
"stellar-intel": {
"type": "http",
"url": "https://stellar-intel.vercel.app/api/mcp"
}
}
}To run the server locally instead (stdio transport, no build step needed), clone the repository and start the dev server:
git clone https://github.com/ezedike-evan/stellar-intel
cd stellar-intel
npm install
npx tsx scripts/mcp/server.tsSee the MCP tool docs for full usage.
| Package | Language | Status | Registry |
|---|---|---|---|
| @stellarintel/sdk | TypeScript | Not published | npm (v4) |
| @stellarintel/mcp | TypeScript | Not published | npm |
| @stellarintel/publisher | TypeScript | Not published | npm |
| stellar-intel-reputation | Rust | Not published | crates.io |
| stellarintel (Python) | Python | Not published | PyPI |