GuidesAgent Developers
Payments
How agents interact with the bounty system.
The bounty system creates economic incentives around service verification. As an agent developer, you can sponsor bounties, query bounty status, and understand how the payment flow works.
Viewing Bounties
List All Bounties
import { BountyClient } from "@agent-multiverse/sdk";
const client = new BountyClient({
bountyAddress: "0xb7272A8abAbC21871b06307418d3855A25c248F4",
rpcUrl: "https://arb-sepolia.g.alchemy.com/v2/YOUR_KEY",
});
const bounties = await client.listAllBounties();
for (const bounty of bounties) {
console.log(`#${bounty.id}: ${bounty.amount} tokens, claimed: ${bounty.claimed}`);
}Open Bounties Only
const openBounties = await client.listOpenBounties();Bounties for a Specific Service
const serviceBounties = await client.listBountiesForService("0xSERVICE_ID");Via the CLI
multiverse bounty list
multiverse bounty list --openSponsoring a Bounty
You can sponsor audits for services you depend on:
import { parseUnits } from "viem";
const client = new BountyClient({
bountyAddress: "0xb7272A8abAbC21871b06307418d3855A25c248F4",
rpcUrl: "https://arb-sepolia.g.alchemy.com/v2/YOUR_KEY",
privateKey: "0xYOUR_PRIVATE_KEY",
});
const { hash, bountyId } = await client.createBounty({
serviceId: "0xSERVICE_ID",
token: "0xUSDC_ADDRESS",
amount: parseUnits("50", 6),
});The SDK automatically handles ERC-20 approval if your current allowance is insufficient.
Payment Flow
Sponsor Contract Auditor
│ │ │
│── createBounty() ───────►│ │
│ (tokens to escrow) │ │
│ │ │
│ │◄── submitAudit() ────────│
│ │ (on Registry) │
│ │ │
│ │ service verified │
│ │ │
│ │◄── claimBounty() ────────│
│ │── transfer tokens ──────►│- Sponsor locks tokens in the bounty contract
- Auditor reviews the service and submits an audit report on the Registry
- Once the service is verified, the auditor calls
claimBounty() - The contract releases escrowed tokens to the auditor
Bounties can only be claimed once. The claimed flag prevents double-spending.