aisp
// 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.
$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameaisp
version1.0.2
descriptionEnables 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[object Object]
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)
- Listings from backend:
GET /api/listings - Approve USDC if needed (contract spends on
fund) - Fund on-chain:
contract.fund(listingId, termDays, diemAmount)→ returnsrentalId - Get key:
POST /api/key/{rentalId}with signed messagediem-marketplace:get-key:{rentalId}:{timestamp} - Use
apiKeywith Venice API untilexpiresAt(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)
- Create listing on-chain:
contract.list(pricePerDay, termDays, diemMin, diemMax)→listingId - Store key on backend:
POST /api/keyswith{ listingId, apiKey, signature, timestamp }- Message:
diem-marketplace:store-key:{listingId}:{timestamp}
- Message:
- 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:apiKeyin 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