360 Secure SkillHub
360 安全技能中心

AISP

AISP Agent Skill 让代理在 Diem 市场以 USDC 托管方式租用或提供 DIEM/Venice API 推理容量:查询与上架 listing、链上 fund 与 settle 结算、用 EIP-191 签名获取或存储密钥;提供方在结算时获得 99%(1% 协议费)。需后端地址环境变量、Base 链钱包及 ethers 与 SDK。

daveo280
daveo280
热度 90.33
最近更新 2026-05-17 11:55:06
分类:自动化依赖:代码执行 / 第三方 API应用场景:API 集成 / 工作流 / 财务

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add aisp
Metadata
name
aisp
version
1.0.2
description
Enables AI agents to interact with AISP (Agent Inference Sharing Protocol) for renting or providing DIEM API capacity. Use when working with diem-marketplace, Venice API keys, USDC escrow, listings, rentals, or when the user wants to rent inference capacity or list API keys.
metadata
{"openclaw":{"homepage":"https://github.com/DaveO280/Diem-Marketplace-V2-","emoji":"⚡","requires":{"env":["BACKEND_URL"]}}}

AISP Agent Skill

Agent Inference Sharing Protocol (AISP) lets agents rent idle DIEM/Venice API capacity via USDC escrow. Providers list capped API keys; agents fund and receive keys automatically.

Architecture

Agent: fund() → Backend sees Funded event → Key released → Agent uses Venice API
Provider: list() → Agent funds → Term expires → settle() → Provider paid (99%, 1% fee)

Agent Workflow (Renting)

  1. Listings from backend: GET /api/listings
  2. Approve USDC if needed (contract spends on fund)
  3. Fund on-chain: contract.fund(listingId, termDays, diemAmount) → returns rentalId
  4. Get key: POST /api/key/{rentalId} with signed message diem-marketplace:get-key:{rentalId}:{timestamp}
  5. Use apiKey with Venice API until expiresAt (Unix timestamp)

SDK (Agent)

import { DiemAgent } from "diem-marketplace-sdk";

const agent = new DiemAgent({
  signer: wallet,
  contractAddress: "0x...",
  backendUrl: "https://diem-marketplace-backend.fly.dev",
  usdcAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
});

const listings = await agent.getListings();
const { apiKey, expiresAt } = await agent.rent(
  listings[0].listingId,
  termDays,
  ethers.parseUnits(diemAmount, 6)
);

Provider Workflow (Listing)

  1. Create listing on-chain: contract.list(pricePerDay, termDays, diemMin, diemMax) → listingId
  2. Store key on backend: POST /api/keys with { listingId, apiKey, signature, timestamp }
    • Message: diem-marketplace:store-key:{listingId}:{timestamp}
  3. Settle when rental expires: contract.settle(rentalId) → provider receives 99% (1% protocol fee)

SDK (Provider)

import { DiemProvider } from "diem-marketplace-sdk";

const provider = new DiemProvider({
  signer: wallet,
  contractAddress: "0x...",
  backendUrl: "https://diem-marketplace-backend.fly.dev",
  usdcAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
});

const listingId = await provider.createListing({
  pricePerDay: ethers.parseUnits("0.80", 6),
  termDays: 30,
  diemMin: ethers.parseUnits("1000", 6),
  diemMax: ethers.parseUnits("4000", 6),
  apiKey: "vn-scoped-...",
});

Key Paths

Path Purpose
sdk/src/agent.ts DiemAgent: getListings, rent, getKey, getMyRentals
sdk/src/provider.ts DiemProvider: createListing, settle, revokeAndRefund
backend/src/routes.ts API routes: /api/listings, /api/keys, /api/key/:id
contracts/DiemMarketplace.sol On-chain escrow, 1% fee

Backend API

Endpoint Method Purpose
/api/listings GET List rentable listings
/api/listings/:id GET Single listing
/api/keys POST Provider stores API key
/api/key/:rentalId POST Agent retrieves key (signature required)
/api/balance POST Check DIEM balance for API key
/api/requests POST Create rental request

Signatures

All backend requests requiring auth use EIP-191 signing:

  • getKey: diem-marketplace:get-key:{rentalId}:{timestamp}
  • storeKey: diem-marketplace:store-key:{listingId}:{timestamp}
  • balance: apiKey in body (no signature)

Contract (Base)

  • Chain: Base (8453)
  • Mainnet: 0xeeDa7657f2018b3b71B444b7ca2D8dE91b3B08f3
  • USDC: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Security & Signing

  • Use an external signer or hardware wallet; never paste raw private keys.
  • Require explicit user confirmation before fund transfers or credential usage.
  • Venice API keys must be scoped (inference-only), revocable, and minimal for escrow.

Notes

  • Venice API keys must be inference-only (not admin)
  • 1% protocol fee deducted at settlement