SDKs

Your language.
Same protocol.

All four official SDKs implement the same message types, the same Ed25519 signing scheme, and the same saga state machine.

TS

TypeScript SDK

v1.0.0 · MIT License

The reference implementation. 18 packages covering every protocol primitive. Native ESM, full type safety, Vitest-tested.

Install
npm install @aroha-sdk/core @aroha-sdk/orchestrator @aroha-sdk/credentials
Quickstart
import { ArohaServer } from "@aroha-sdk/core";
import { SagaEngine } from "@aroha-sdk/orchestrator";

const server = new ArohaServer({
  agentDID: "did:aroha-web:myco.ai:agents:personal",
  port: 3000,
  onMessage: async (envelope, respond) => {
    // Handle incoming Aroha messages
  },
  resolvePublicKey: async (did) => { /* DID resolution */ },
});

await server.start();
Packages
@aroha-sdk/coreTransport, crypto, identity, messages
@aroha-sdk/orchestratorSagaEngine, AgentSelector, CSN
@aroha-sdk/credentialsRBAC, spending mandates, registry
@aroha-sdk/registryAgent discovery, on-chain + federated
@aroha-sdk/settlementPayment backends: null, quota, stripe, escrow
@aroha-sdk/reputationBayesian Beta engine, Thompson Sampling
@aroha-sdk/policyCapability rules, prompt injection defense
@aroha-sdk/cacheSemantic caching for ArohaRequest
@aroha-sdk/telemetryOpenTelemetry + W3C Trace Context
@aroha-sdk/commerceB2B agreements, subscriptions, audit trail
@aroha-sdk/preferencesUser preference profiles, soft scoring
@aroha-sdk/trusted-meshVPC/mTLS signature bypass
@aroha-sdk/mcp-bridgeMCP tools ↔ Aroha capabilities
@aroha-sdk/a2a-bridgeGoogle A2A ↔ Aroha protocol
@aroha-sdk/langchain-bridgeLangChain, AutoGen, Semantic Kernel
@aroha-sdk/hermes-bridgeHermes Agent + ZeroClaw — MCP stdio server
@aroha-sdk/openclaw-bridgeOpenClaw skills ↔ Aroha capabilities
@aroha-sdk/composio-bridgeComposio actions for TrustClaw + any LLM
@aroha-sdk/micro5-line dev API for local testing
@aroha-sdk/cliScaffold agents, convert from other frameworks
Py

Python SDK

v1.0.0 · MIT License

asyncio-native. FastAPI transport, Pydantic validation, LangChain + CrewAI + AutoGen bridges. Python 3.11+.

Install
pip install aroha
Quickstart
from aroha.transport import ArohaServer
from aroha.mandate import issue_intent_mandate, SpendingConstraints
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey

key = Ed25519PrivateKey.generate()

intent = issue_intent_mandate(
    grantor_did="did:aroha-web:myco.ai:agents:user",
    grantee_did="did:aroha-web:myco.ai:agents:personal",
    constraints=SpendingConstraints(spend_limit_usd=500.0),
    private_key=key,
)
Packages
aroha.cryptoEd25519 signing, AES-256-GCM encryption
aroha.identityDID resolution, did:aroha-web:
aroha.messages16 message types, envelope builder
aroha.transportFastAPI-based ArohaServer, async client
aroha.orchestratorSagaEngine, AgentSelector
aroha.mandateSpendingMandate issue, attenuation, verify
aroha.reputationBayesian Beta engine, Thompson Sampling
aroha.csnCapability Schema Negotiation
Go

Go SDK

v1.0.0 · MIT License

Zero external dependencies for the core. Idiomatic Go interfaces, stdlib ed25519, Go 1.22+.

Install
go get pkg.aroha-labs.com/sdk-go
Quickstart
package main

import (
    "time"
    "pkg.aroha-labs.com/sdk-go/aroha/mandate"
    "crypto/ed25519"
    "crypto/rand"
)

func main() {
    pub, priv, _ := ed25519.GenerateKey(rand.Reader)

    intent, err := mandate.IssueIntent(
        "did:aroha-web:myco.ai:agents:user",
        "did:aroha-web:myco.ai:agents:personal",
        mandate.SpendingConstraints{SpendLimitUSD: 500},
        priv, time.Hour,
    )
    _ = intent
}
Packages
aroha/cryptoEd25519 sign/verify, AES-GCM
aroha/identityDID, did:aroha-web:
aroha/messagesEnvelope types, nonce registry
aroha/transportArohaServer, ArohaClient
aroha/orchestratorSagaEngine, AgentSelector, CSN
aroha/mandateSpendingMandate chain
aroha/reputationBayesian Beta reputation engine
Jv

Java SDK

v1.0.0 · MIT License

Java 21 records, sealed interfaces, Bouncy Castle for Ed25519, Spring AI bridge included.

Install
// Gradle
implementation 'io.aroha:aroha-sdk:1.0.0'

// Maven
<dependency>
  <groupId>io.aroha</groupId>
  <artifactId>aroha-sdk</artifactId>
  <version>1.0.0</version>
</dependency>
Quickstart
import io.aroha.mandate.ArohaMandateCredential;
import io.aroha.mandate.ArohaMandateCredential.*;

var constraints = new SpendingConstraints.Builder()
    .spendLimit(500.0)
    .currency("USD")
    .build();

var intent = ArohaMandateCredential.issueIntent(
    "did:aroha-web:myco.ai:agents:user",
    "did:aroha-web:myco.ai:agents:personal",
    constraints,
    userPrivateKey,
    Duration.ofHours(1)
);
Packages
io.aroha.cryptoEd25519, AES-GCM via Bouncy Castle
io.aroha.identityDID, did:aroha-web:
io.aroha.messagesEnvelope, NonceRegistry
io.aroha.transportArohaServer, ArohaClient
io.aroha.orchestratorSagaEngine, AgentSelector, CSNHandler
io.aroha.mandateArohaMandateCredential
io.aroha.reputationReputationEngine
io.aroha.bridgesSpringAiBridge