Aisp
Enables AI agents to interact with AISP (Agent Inference Sharing Protocol) for renting or providing
- Rating
- 4.1 (230 reviews)
- Downloads
- 6,120 downloads
- Version
- 1.0.0
Overview
Enables AI agents to interact with AISP (Agent Inference Sharing Protocol) for renting or providing DIEM API.
Complete Documentation
View Source →
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} - 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
Installation
openclaw install aisp
💻Code Examples
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));
## 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 { 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)
);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-...",
});Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.