Issue and validate AVCs. Generate trust receipts. Run a node. The Rust SDK is the reference; Node/TypeScript and Python are on the roadmap.
# Cargo (Rust reference) cargo add exochain-sdk # Roadmap # npm install @exochain/sdk (v0.5) # pip install exochain (v0.5)
use exochain_sdk::{Client, ActorKind};
let client = Client::connect_default().await?;
let actor = client.register_actor(
ActorKind::Agent,
"Aperture Procurement Agent",
parent_org_id,
).await?;let avc = client.issue_avc(IssueAvcParams {
subject: actor.id,
policy_domain: "aperture.procurement".into(),
scope: vec!["procure.search","procure.quote","procure.purchase"],
constraints: serde_json::json!({"ceiling_usd": 50_000}),
not_after: now + Duration::days(180),
}).await?;let v = client.validate_avc(&avc.token).await?;
match v {
Validation::Pass(scope) => agent.act(scope).await?,
Validation::Fail(reason) => abort(reason),
}let receipt = client.emit_trust_receipt(EmitParams {
avc_id: avc.id,
action_descriptor: "procure.purchase:po-2026-0234",
outcome: Outcome::Permitted,
}).await?;let quote = client.settlement_quote(receipt.id).await?; assert_eq!(quote.amount, "0"); // launch_policy_zero let sr = client.commit_settlement(quote).await?; assert_eq!(sr.amount, "0");
Apache-2.0 reference implementation. The public repository link is forthcoming.
Request access