校对:soup
建设代理经办业务的财务业务.
让一个企业出售自己的作品,从其他企业购买服务,并授权代理人通过其账户支出。 供应商标签支持经常性商业,支出授权和支付义务附在企业身上.
从企业购买的企业
企业可以在购买数据的同时出售研究,软件或创意作品,推论和计算制作所需的数据. 其代理人需要交易的权力,其供应商需要他们能够收取的承诺,其所有人需要控制企业的资金和创造的价值.
Dexter正在为这些企业建立业务和金融体系:自营账户、供应商关系、生产性融资和界定的经济权利。 每个企业保留其资产和客户关系,同时保留其工作创造的知识和财务历史.
这个SDK提供HTTP和MCP的支付,供应商Tabs,销售中件和客户端集成. 打开复制器 将代理人与服务发现和商业联系起来; 连接 将身份和所有者授权纳入申请。 现有的企业和独立代理运行时间可以通过这些接口参与.
供应商标签
标签赋予代理人在业主核准的限额下与指定供应商继续采购的权力。 供应商的仪表在交货时正常工作,买方的账户承担由此产生的付款义务。 这有助于其他经商企业的经常性推论、数据服务和工作.
业主批准出卖人,开庭期限和期满. 代理在赠款范围内签章 购买者的资金在解决之前都留在自己的钱包里,由沃特的预留规则来保护尚未履行的义务. 执行情况和交易检查如下: 授权和解决。 。 。 .
import { payUrlWithTab, type ReserveFinalVoucherV2 } from '@dexterai/x402/tab';
const reserveFinalVoucherV2: ReserveFinalVoucherV2 = async (input) => {
const response = await fetch('/api/native-tab/reserve', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify(input),
});
if (!response.ok) throw new Error(`reservation failed: ${response.status}`);
return response.json();
};
const tabs = new Map(); // one open tab per seller, reused across calls
const { result, tab } = await payUrlWithTab(
'https://api.example.com/paid/infer',
{ method: 'GET' },
{
vault,
perUnitCap: '0.01',
totalCap: '1.00',
tabs,
reserveFinalVoucherV2,
},
);
// ...the agent keeps calling; every call reuses the same tab, with no new prompt...
await tab?.close(); // one on-chain settle pays the seller for everything
这就是整个循环: 一拍打开, 无限呼叫在盖下, 一定了关闭。 卖家的地址是从URL自己的线上掉下来的 402 挑战 绝不是从你的代码里 这个 vault 是从您嵌入密码的钱包中创建一次;参见 设置。预留路线属于您认证的后端: 一旦确认准确的索拉纳交易,它就会返回一个装有凭证的收据。 买方和卖方各自独立核实该交易、其由Dexter授权署名的凭单装订备忘录以及位于交易档的一致的Vault/Session Account State。 只有经过处理的证据才被驳回;最后证据在已经提出时即被接受,但已付款的请求不会等待最后敲定。 闭会/撤销仍然是最后确定的终点站步骤.
设置
边安装 SDK @dexterai/vault ——这是对等的依赖,所以你的应用程序和标签适配器共享一个金库实例:
npm install @dexterai/x402 @dexterai/vault
构建一个 vault 适配器一次,从钱包地址,您在注册时收到的地址 dexter. 现金,加上你的密码:
import { createSolanaVaultAdapter } from '@dexterai/x402/tab/adapters/solana';
const vault = createSolanaVaultAdapter({
connection, // your Solana Connection (any RPC)
swigAddress, // the vault's Swig state account, from enrollment
vaultPda, // the vault's gate PDA, from enrollment
passkeySigner, // browser: vault's DexterApiBrowserPasskeySigner · agent: passkeySignerFromP256Keypair(kp)
feePayer, // lamport fee payer (a Signer)
});
那个 vault 驱动器 上方的标签循环在你花钱前检查一下卖家的价格, resolveTabTerms(url) 阅读这些术语时不支付费用,包括同意屏幕、目录或预先规划的代理人.
领到工资(销售)
卖方在接受有酬工作之前,在中间软件中核实凭单及其预订。 和解向卖方支付与开庭有关的地址. tabOrExactMiddleware 单张单张单张单张单张单张单张单张 402,因此呼叫者可以使用任一支付途径.
import {
FileChannelLedger,
tabOrExactMiddleware,
requireTab,
openSse,
} from '@dexterai/x402/tab/seller';
import type { X402Request } from '@dexterai/x402/server';
const ledgerDir = process.env.TAB_LEDGER_DIR;
const channelIdCutover = process.env.TAB_CHANNEL_ID_CUTOVER;
if (!ledgerDir) throw new Error('TAB_LEDGER_DIR must name persistent storage');
if (channelIdCutover !== 'legacy-case-aliases-migrated-or-empty') {
throw new Error('prove the seller ledger empty or complete the documented alias migration first');
}
const ledger = new FileChannelLedger(ledgerDir, { channelIdCutover });
app.get('/paid/tick',
tabOrExactMiddleware({
connection,
sellerPubkey,
network: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
perUnit: '0.01',
ledger,
ledgerSafetyMode: 'production-single-instance',
}),
async (req, res) => {
if ((req as X402Request).x402) { res.json({ data: '...' }); return; } // one-shot caller, already paid
const meter = openSse(res, { tab: requireTab(req), perUnit: '0.01' }); // tab caller
await meter.charge(1); // demand a fresh voucher; throws if the cap is exceeded
meter.send(JSON.stringify({ data: '...' }));
await meter.end(); // always await — closes the metered response
});
FileChannelLedger 用于一个销售过程的重新启动安全; 保留其目录
持续储存. TAB_CHANNEL_ID_CUTOVER 是一个操作员的断言,永远不会
复制/粘贴默认: 仅为已证实的空商店设置, 或完成后设置
混合大小写别名合并到
变动情况。 。 。 .
多个复制件必须使用 RedisChannelLedger 与
ledgerSafetyMode: 'production-multi-instance',核查耐久性,以及
已记录的写入/密钥空间切换。 生产配置明确
模拟默认只被准确接受 test 或者说 development
环境.
想要一个只有标签的结束点, 还是自己来作曲? 整个卖家的表面 参考文献.md。 。 。 .
主办批准(合作伙伴)
当合作伙伴的应用程序为用户打开一个标签时,批准会运行在一个Dexter托管的同意屏幕上,与合作伙伴的应用程序有着深层的联系. 用户看到对方,盖子,和过期时,会一次地敲取他们的密码,并控制返回应用. 合伙人没有建立批准UI,从不处理密码.
屏幕主机有结构原因,不是结构化的:金库的密码只能签在Dexter自己的出处上,因此用户不能被费斯德放在一个外观相似的页面上批准. 安全是财产 关键符号所在。流动和路线: 文件.dexter. 现金。 。 。 .
也在这个包里
标签为头条. 同一装置承载了x402表面的其余部分——每个部分均在以下文件全文中记载: 参考文献.md。 。 。 .
付费的MCP工具使用 @dexterai/x402/mcp 进入点。 这个 MCP 指南 涵盖卖方适配器、耐用储存合同和买方发送并保存全部结果.
- 一发付款 单次单次购买HTTP
402索拉纳的USDC和主要的EVM链.payAndFetch(客户),x402Middleware(服务器),useX402Payment(反应). - 批量结算( EVM) ——先付一次代管费,多次用出链凭证支付电话费,结出几笔交易来摊还天然气.
openBatchChannel。 。 。 . - 发现 ——使任何被保护的路线能够通过x402集市谱通过能力找到.
bazaarExtension()。 。 。 . - 赞助访问和自动列名 ——通过Dexter主持人支付的终点自动发现,命名,质量测试,并浮出水面
x402_search整个MCP客户,没有注册步骤.
支助网络
标签是索拉纳。 一发和分批解决跨越索拉纳和主要的EVM链;每一链都有USDC(Paxos USDG on Robinhood Chain,没有本地USDC)。 完整直播列表 : Dexter 主持人。 。 。 .
| 网络 | CAIP-2 联合国 | 状态 |
|---|---|---|
| 索拉纳 | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | 生产 |
| 基础 | eip155:8453 | 生产 |
| 多边形 | eip155:137 | 生产 |
| 坐标 | eip155:42161 | 生产 |
| 乐观主义 | eip155:10 | 生产 |
| 雪崩 | eip155:43114 | 生产 |
| 业连 | eip155:56 | 生产 |
| 世界链 | eip155:480 | 生产 |
| 修道院 | eip155:143 | 生产 |
| 罗宾链 | eip155:4663 | 生产 (USDG) |
| 斯卡莱基地 | eip155:1187947933 | 生产(零气) |
授权和解决
所有者核准的登记对会话钥匙、卖方、期满和开支限额具有约束力。 代理人在该会话内签出凭单. 见 登记和凭证核对。 。 。 .
每一份最后V2凭单,买卖双方均独立核实索拉纳的准确交易、装有凭单的备忘录和一致的Vault/Caseccount状态。 这个 保留核查人 需要至少确认承诺; 仅凭广播签名是不够的。 这个 保留提供人合同 描述后端集成.
部署的Vault程序是 Hg3wRaydFtJhYrdvYrKECacpJYDsC9Px7yKmpncj2fhc 在索拉纳主网。 操作员可用性,钱包管理权限和程序升级权限是其信任模式的一部分.
Vault程序源和威胁模型保存在一个私人仓库. 安全报告、审计询问或审查访问、联系 分支@ dexter. cash。 。 。 .
再来
释放维护者可以跟踪 GitHub OIDC 出版工作流程。 。 。 .
- 参考文献.md ——每个导出,选项表,以及示例:分页,一发,分批结算,发现.
- 升级? v6 要求
@dexterai/vault@^0.44.0,需要装有凭单的 V2 预订收据,并使用精确状态 V3 撤销。 从v5/v4/v3迁移: 参考文献.md。 。 。 . - 许可证 麻省理工学院,看 自由主义。 。 。 .
Dexter 主持人 • 妇女 开源目录 • 妇女 现场直播 • 妇女 成为卖家