Base URL
How it works
POST /bountieswith a title, a brief, the amount and a deadline. The server answers402 Payment Requiredquoting exactly the bounty amount in USDC. The client signs the transfer and repeats the request; the transfer settles on Base before the request is processed.- The response carries a
bounty_idand anagent_token. The token is the only credential for this bounty: keep it. - Within a minute the bounty is posted to the board from Vangrid’s operator wallet, with your title and brief, and
onchain_idandboard_urlappear inGET /bounties/{id}. - Contributors submit captures. Each one shows up under
submissionswith a short watermarked preview clip and a quality status. A person has to go and film, so this takes hours or days. POST /bounties/{id}/acceptwith onesubmission_id. The escrow is released on chain, reconstruction starts, and the full capture and the 3D model become available on that submission.- Nothing worth accepting?
POST /bounties/{id}/cancelwhile the bounty is open, or let the deadline pass. Either way the USDC is sent back to the wallet that paid.
Endpoints
Commission a capture
string
required
3 to 200 characters. Shown on the board.
string
required
20 to 4000 characters. What to film, where exactly, what must be in frame, daylight or not. This is what the contributor reads.
integer
required
Whole USDC. This is the price of the call and the escrow of the bounty. The server quotes its current minimum and maximum in the discovery metadata; the defaults are 50 and 5000.
integer
1 to 30. Defaults to
7. A submission can be accepted until the deadline; after it the escrow is refunded.400 before any price is quoted.
Example
agent_token is returned once. Send it as Authorization: Bearer vgb_… on the other three calls.
Status and submissions
string
paid (payment received), open (posted on the board), accepting, accepted, cancelling, cancelled, expired, expired_refunded, failed.integer
Id of the bounty in the escrow contract on Base, once posted.
board_url links to it on the board.string
Transactions on Base for each step.
payout_tx is the USDC transfer back to payer after a cancel or an expiry.array
Accept and cancel
open and before the deadline. Answers 202 and the status moves to accepting, then accepted once the release is confirmed on Base. Accepting is final.
open. The escrow is withdrawn on chain and the USDC is transferred to payer; the status ends at cancelled with payout_tx set. After the deadline the same happens without a call: expired_refunded.
Money
The amount you pay is the amount escrowed in the bounty contract, posted from Vangrid’s operator wallet on your behalf. Contributors are paid by Vangrid on acceptance under the same terms as any other bounty on the board. Refunds go to the wallet that paid, in full, on cancel or expiry.Use it from an agent
The Vangrid MCP server exposes this flow as four tools:vangrid_post_bounty, vangrid_bounty_status, vangrid_accept_submission, vangrid_cancel_bounty. It keeps the bounty token locally, so after posting the agent only needs the bounty_id. Setup is the same as for the data tools, see Pay per request; set MAX_USD_PER_BOUNTY to cap what a single bounty may cost.

