Developers

Build on EXOCHAIN.

Issue and validate AVCs. Generate trust receipts. Run a node. The Rust SDK is the reference; Node/TypeScript and Python are on the roadmap.

alphaunstable APIs

Quickstart

01

Install the SDK

# Cargo (Rust reference)
cargo add exochain-sdk

# Roadmap
# npm install @exochain/sdk    (v0.5)
# pip install exochain         (v0.5)
02

Register an actor

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?;
03

Issue an AVC

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?;
04

Validate, then act

let v = client.validate_avc(&avc.token).await?;
match v {
  Validation::Pass(scope) => agent.act(scope).await?,
  Validation::Fail(reason) => abort(reason),
}
05

Generate a trust receipt

let receipt = client.emit_trust_receipt(EmitParams {
  avc_id: avc.id,
  action_descriptor: "procure.purchase:po-2026-0234",
  outcome: Outcome::Permitted,
}).await?;
06

Settlement (zero-priced launch policy)

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");

Resources

Source

Apache-2.0 reference implementation. The public repository link is forthcoming.

Request access