@altana网络/sdk
TypeScript SDK用于创建带有链上会话键授权的非拘禁智能代理钱包.
npm install @altananetwork/sdk viem
快开始
为您想要的链条创建客户端 。 通过一个L1或几个:相同 钱包地址在您配置的每个链条上工作.
import { createClient, ETHEREUM, BNB } from "@altananetwork/sdk";
// Both L1s, or just one, your choice.
const client = createClient({ chains: [ETHEREUM, BNB] });
密码钱包( 浏览器)
const wallet = await client.createPasskeyWallet({ name: "My Agent Wallet" });
私钥钱包(服务器/代理)
import { signerFromPrivateKey } from "@altananetwork/sdk";
const signer = signerFromPrivateKey(process.env.PRIVATE_KEY);
const wallet = await client.createWallet({ signer });
授权会话并执行
操作需要选择 chainId (客户端第一个链的默认值):
const session = await client.grantSession({
wallet,
signer,
permissions: {
calls: [{ to: "0x…" }],
spend: [{ limit: 1_000_000n, period: "day" }], // 1 USDC/day
},
expiry: Math.floor(Date.now() / 1000) + 60 * 60, // 1 hour
});
await client.execute({
session,
chainId: 56, // BNB Smart Chain; omit to use the default chain
calls: [{ to: "0x…", value: 0n, data: "0x…" }],
});
支付x402的API
会话键可以通过x402标准(Permit2或EIP-3009)支付HTTP资源 铁轨),从智能钱包上定居在链上. 规定一次,然后透明地支付:
import { PERMIT2_ADDRESS } from "@altananetwork/sdk";
// One-time, as admin (permit2 rail):
await client.approveTokenForPermit2({ wallet, signer, token: "0xUSDC…" });
await client.approveSignatureChecker({ wallet, signer, session, checker: PERMIT2_ADDRESS });
// The agent pays + fetches (server-side):
const res = await client.fetchWithX402({ session, url: "https://api.example.com/paid" });
该账户的ERC-1271签字授权付款。 见 链外签名。 。 。 .
雇用另一名代理人(ERC-8183)
代理人可以互相雇佣和支付工作报酬. hireErc8183Agent 运行整个
买方流动(创建、登记、预算、核准、基金)作为原子继电器
,并在工作获得连锁资助后返回.
import { hireErc8183Agent, getErc8183Job, BNB } from "@altananetwork/sdk";
const { jobId } = await hireErc8183Agent(session, {
provider: "0xSellerAgentAddress",
task: "Audit wallet 0x…'s Venus position and recommend an action.",
budget: 100_000_000_000_000_000n, // 0.1 $U (18 decimals)
}, { network: BNB });
const job = await getErc8183Job(BNB, jobId); // OPEN, FUNDED, SUBMITTED, COMPLETED
管理路径是 hireErc8183Agent(wallet, signer, params, opts)。使用
会话路径指的是一个有范围化的密钥,其链上开支限制上限为
一个自主的代理人永远可以代管. settleErc8183Job 核准或争议
交货,以及 buildClaimRefundCall 如果一无所获,则收回预算.
全文 : ERC-8183 代理工作。 。 。 .
给特工一个身份(ERC-8004)
买家通过ERC-8004身份登记处找到卖家. 一个特工可以薄荷
并保持自己的参与,有一个会议 关键范围仅针对这两个呼叫——
erc8004RegisterPermissions 赠款 register 财务报告和审定财务报表 setAgentURI 编辑
登记簿和没有其他内容,因此一个已损坏的会话不能转让
识别或批准一个超过其撤销寿命的操作员.
import {
erc8004RegisterPermissions,
registerErc8004Agent,
setErc8004AgentUri,
encodeErc8004AgentUri,
withErc8004Registration,
BNB,
} from "@altananetwork/sdk";
// Grant: permissions: { calls: erc8004RegisterPermissions(56), spend: [...] }
const record = {
type: "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
name: "Vault Sentinel",
description: "Watches Venus positions.",
services: [{ name: "A2A", endpoint: "https://sentinel.example/.well-known/agent-card.json" }],
registrations: [], // the id does not exist until the mint assigns it
} as const;
const { agentId } = await registerErc8004Agent(
session,
{ agentUri: encodeErc8004AgentUri(record) },
{ network: BNB },
);
await setErc8004AgentUri(
session,
{ agentId, agentUri: encodeErc8004AgentUri(withErc8004Registration(record, agentId, 56)) },
{ network: BNB },
);
注册是两相的,因为记录嵌入了薄荷所分配的id.
getErc8004Agent(BNB, agentId) 记录所有者
agentId,因为登记处没有反向查询.
全文 : ERC-8004 代理身份。 。 。 .
文档
完整的文件、概念指南和SDK参考: 网页。 。 。 .
资料来源: github.com/altana网络/altana-sdk。 。 。 .
许可证
阿帕奇 - 2.0