steward-sdk
If your Tameion agent pays anyone in USDC, put STEWARD in front of it: one contract call gives you per-payee caps + period limits + expiry the agent can't exceed, an on-chain decision log, and an escalation path. Ten lines. Publishing on npm and PyPI on Day 9.
TypeScript ·
npm i steward-arc-sdk viemimport { NETWORK } from "@/lib/net";
import { Steward } from "steward-arc-sdk";
import { privateKeyToAccount } from "viem/accounts";
const s = new Steward({
allowanceManager: "0x…", // same address on Arc mainnet and testnet (see README)
auditLog: "0x…",
account: privateKeyToAccount(process.env.AGENT_PK as `0x${string}`),
});
// rules → canonical hash → AuditLog.record() → pay() | escalate()
const r = await s.decide({
allowanceId: 0n, amount: 150_000_000n, memo: "logo v2",
inputs: { milestone: "logo v2", evidence: "ipfs://…" }, evidence: true, screenOk: true,
});
console.log(r.action, r.hash, r.payTx ?? r.escalateTx);Python ·
pip install steward-sdkfrom steward_sdk import Steward
s = Steward(allowance_manager="0x…", audit_log="0x…", agent_private_key=os.environ["AGENT_PK"])
r = s.decide(allowance_id=0, amount=150_000_000, memo="logo v2",
inputs={"milestone": "logo v2", "evidence": "ipfs://…"}, evidence=True, screen_ok=True)
print(r.action, r.hash, r.pay_tx or r.escalate_tx)What you get: the agent never holds more than the allowance; every decision (including HOLD) is hashed and recorded on-chain; a decision hash pays once even if your agent retries; anything over policy becomes an escalation a human approves with one tap. Fork the contract from github.com/big14way/steward.