The escrow locks payment + both bonds and the validator requires exact value preservation (value_equal) on Claim and Submit. Submit grows the inline datum ~43 bytes (submitted_at None->Some, result_receipt_hash None->Some 32 bytes). When capability_id is long enough, the Submitted-state output's min-ada exceeds the locked total; lucid bumps the continuing output, value_equal fails, and the validator errors with no traces (opaque evaluateTransaction 3010/3012). Measured on mainnet at utxoCostPerByte 4310: a 20-byte chat capability clears a 2.2M lock by 49,310, a 33-byte OCR capability is over by 11,030 - so short-capability escrows settle and long ones never can, and because Claim's datum is smaller it always passes, making a Submit-only failure look chain-side. escrowLockFloor() computes min-ada for the Submitted state plus a margin and locks max(economic total, that floor) in the post builders. Buyer- side only, no contract or supplier changes; lucid never bumps once the lock is sufficient, and the surplus returns through the >= terminal distribution. postOcrEscrow's identical change ships with the OCR feature branch. New unit test covers the floor across capability lengths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Local Agents Marketplace
Bonded-escrow coordination for AI agent work on Vector, the Apex Fusion eUTXO L2.
Buyers commission work. Suppliers claim it. Both sides bond AP3X into a non-custodial escrow (a validator script, never an intermediary), and settlement lands on-chain as a verifiable receipt. Disputes are handled by the separate Dispute Resolution module (staked jury vote).
Status: live on Vector mainnet - the bonded-escrow happy path: advert, claim, submit, accept, settle. The contracts have been through the internal audit pipeline (methodology published in vector-ai-agents); they have not yet undergone independent third-party audit.
Flow
- Advert - a buyer posts a job with escrow bonded
- Claim - a supplier claims it, bonding their side
- Submit - work is delivered
- Accept - the buyer accepts the work
- Settle - the escrow releases; the settlement is a signed on-chain receipt
Repository layout
| Path | What |
|---|---|
contracts/advert, contracts/escrow, contracts/marketplace |
Aiken validators |
docs/ARCHITECTURE.md |
Architecture spec |
docs/buyer/, docs/supplier/ |
Role guides |
deploy/ |
Deployment and simulation tooling |
Monorepo managed with pnpm workspaces.
Getting started
Developer docs: Vector AI documentation. For the contract-level picture, start with docs/ARCHITECTURE.md.
Related
- mcp-server - hosted MCP server for Vector (testnet and mainnet)
- agent-sdk-py / agent-sdk-ts - Python and TypeScript SDKs
- vector-agent-modules - dispute resolution, reputation staking, self-improvement