@aroha-sdk/commerce
v1.2.2
Published
Aroha commerce layer — B2B, B2C, and C2B interaction patterns for agent networks
Readme
@aroha-sdk/commerce
B2B contracts and B2C subscriptions for Aroha agents — structured commerce agreements that layer above mandate-scoped settlement.
Install
npm install @aroha-sdk/commerceQuick example
import { B2BContract, B2CSubscription } from "@aroha-sdk/commerce";
import { issueIntentMandate } from "@aroha-sdk/credentials";
// Create a B2B contract between two organizations
const contract = new B2BContract({
providerDID: "did:aroha:travel-provider",
consumerDID: "did:aroha:enterprise-customer",
terms: {
monthlyCallLimit: 10_000,
pricePerCallUsd: 0.05,
spendCapUsd: 500, // maps to mandate spendLimitUsd
allowedActions: ["book-flights", "book-hotels"],
},
expiresAt: new Date("2027-01-01"),
});
// Issue a mandate derived from the contract terms
const { token } = await issueIntentMandate(
contract.providerDID, contract.consumerDID,
{ spendLimitUsd: contract.terms.spendCapUsd, allowedActions: contract.terms.allowedActions },
providerPrivateKey,
30 * 24 * 3_600_000, // 30-day TTL
);
// B2C subscription for end-user agents
const subscription = new B2CSubscription({
userDID: "did:aroha:user:alice",
plan: "pro",
monthlySpendCapUsd: 50,
});Why this exists in the mandate chain
Mandates are the runtime enforcement mechanism. Commerce contracts are the business-layer agreements that define what mandates should be issued — translating SLAs, pricing plans, and entitlements into mandate constraints.
API
B2BContract(opts)— define a bilateral service agreement with call limits, pricing, and a spending cap.contract.toMandateConstraints()— derive mandate constraints from contract terms.
B2CSubscription(opts)— define a user subscription with a monthly spending cap.subscription.toMandateConstraints()— derive mandate constraints from subscription plan.
ContractRegistry— store and retrieve contracts by provider/consumer DID pair.
License
MIT
