Core SDK for Validation Mandates, create, canonicalize (JCS), hash, sign (EIP-191) and verify immutable mandate documents with CAIP-10 identities.
mandates-core is an early-stage TypeScript project in the AI payments / x402 ecosystem, focused on erc-8004, x402. It currently has 4 GitHub stars and 0 forks, and sits alongside related tools like internet-court-skill, os-moda, skills, sati, karmakadabra, agent-discovery-mcp.
TypeScript SDK for creating, signing, and verifying Mandates: deterministic agreements between a client agent and a server agent. Built to interoperate with the ERC-8004 agent ecosystem.
A Mandate is a signed object that captures:
core)This package focuses on the core lifecycle:
core payload shape (custom or registry-based)If you want to build core from a remote primitives registry, use buildCore.
npm install @quillai-network/mandates-core
yarn add @quillai-network/mandates-core
import { Mandate, caip10 } from "@quillai-network/mandates-core";
import { Wallet } from "ethers";
const client = Wallet.createRandom();
const server = Wallet.createRandom();
const mandate = new Mandate({
mandateId: "01J9X9A3T3DMD3M3CYAJW1Y0SZ",
version: "0.1.0",
client: caip10(1, client.address),
server: caip10(1, server.address),
createdAt: new Date().toISOString(),
deadline: new Date(Date.now() + 10 * 60 * 1000).toISOString(),
intent: "Swap 100 USDC for WBTC",
core: {
kind: "swap@1",
payload: {
amountIn: "100000000",
tokenIn: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
tokenOut: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
minOut: "165000",
recipient: client.address,
deadline: "2025-12-31T00:00:00Z",
chainId: 1
}
},
signatures: {}
});
await mandate.signAsServer(server, "eip191"); // offer
await mandate.signAsClient(client, "eip191"); // accept
const res = mandate.verifyAll();
console.log(res.server.ok, res.client.ok); // true true
core is intentionally flexible. You can attach any structured payload as long as it follows:
{ kind: string; payload: Record<string, unknown> }
const custom = new Mandate({
mandateId: "01J9X9A3T3DMD3M3CYAJW1Y0SZ",
version: "0.1.0",
client: caip10(1, client.address),
server: caip10(1, server.address),
createdAt: new Date().toISOString(),
deadline: new Date(Date.now() + 10 * 60 * 1000).toISOString(),
intent: "Run my custom task",
core: {
kind: "myTask@1",
payload: { foo: "bar", amount: 123 }
},
signatures: {}
});
import { buildCore } from "@quillai-network/mandates-core";
const BASE_URL =
"https://raw.githubusercontent.com/quillai-network/mandate-specs/main/spec";
const core = await buildCore(
"swap@1",
{
chainId: 1,
tokenIn: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
tokenOut: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
amountIn: "100000000",
minOut: "165000",
recipient: client.address,
deadline: "2025-12-31T00:00:00Z"
},
BASE_URL
);
class Mandate
signAsServer(signer, alg)signAsClient(signer, alg)verifyAll()verifyRole("client" | "server")toJSON()buildCore(kind, payload, baseUrl?)
caip10(chainId, address) (helper for eip155:<chainId>:<address>)
verifyAll() returns a structured object (per-role verification details), not a boolean.buildCore() may be cached between calls. If you unit test buildCore, avoid asserting on the exact number of fetch calls unless you reset modules/mocks.MIT © 2025 QuillAI Network
The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all Agent Skill / Claude Code plugin.
An operating system built for AI agents — talk to your NixOS server instead of SSH-ing in. Typed, audited tool access with atomic rollback on every change. Research-grade; run it on a disposable box, not production.
Agent skills for building, shipping, and growing software products
Trust infrastructure for million-agent economies on Solana - identity, reputation, and validation designed for continuous feedback at scale.
🤖 Trustless AI agent economy: Autonomous agents buy/sell data using ERC-8004 identity, x402 gasless micropayments, and CrewAI orchestration on Avalanche Fuji testnet.
MCP server for ERC-8004 agent discovery + x402 payment. No smart account, no relay — just EOA signing. Works with Claude Code, OpenClaw, Cursor, Cline.
The agent-native LLM router for autonomous agents. 55+ models (8 free), <1ms local routing, USDC payments on Base & Solana via x402.
A payments protocol for the internet. Built on HTTP.
A local-first AI agent with persistent memory, emotional intelligence, and a peer-to-peer skills economy.
Self-healing infrastructure for AI agent payments. 90.3% auto-recovery.
The AI agent with a wallet — spends USDC autonomously to get real work done. Apache-2.0, TypeScript.
Daydreams is a set of tools for building agents for commerce