Verification and Publishing
After deployment, Lab runs four tests automatically. Resources that pass go live in the marketplace with no manual publish step.
Post-Deploy Tests
| Test | What it checks | Pass condition |
|---|---|---|
| Health | GET /health returns 200 | Responds within 30 seconds (retries every 2s) |
| x402 Response | Paid endpoints return 402 | Response includes PAYMENT-REQUIRED header with valid x402 JSON |
| Header Validation | Payment requirements are correct | payTo, amount, network, and asset all match the resource config |
| Paid Settlement | Real payment works end-to-end | wrapFetch pays, calls the endpoint, and AI scores the response >= 50/100 |
The paid settlement test is the most important. It:
- Generates realistic test input using AI (or uses the endpoint's
exampleBody) - Ensures the resource's
payTowallet has a USDC ATA - Makes a real x402 payment using
wrapFetchfrom@dexterai/x402 - AI evaluates the response on a 0-100 scale
A score of 50 or above passes. The AI provides notes and fix instructions if it fails.
What Happens on Pass
When all four tests pass:
- Resource
statusis set torunning public_urlis set tohttps://{resourceId}.dexter.cash- An ERC-8004 on-chain identity is minted (Solana or Base) with services listed: x402, A2A, MCP
- A cover image is generated using AI
- The resource appears in the public feed
No "publish" button — passing verification is publishing.
What Happens on Fail
If any test fails, the resource stays in a non-public state. The chat shows which test failed and why. Common failures:
| Failure | Cause | Fix |
|---|---|---|
| Health timeout | Container didn't start or crashed | Check your code for startup errors |
| No 402 response | x402 middleware not applied to the route | The base image handles this — check if you overrode the default route setup |
| Header mismatch | payTo or amount doesn't match config | Verify your endpoint pricing config |
| Low AI score | Response was empty, generic, or broken | Improve the actual response quality |
You can redeploy after fixing issues. The chat preserves your conversation history.
Marketplace Discovery
Once live, your resource is discoverable through:
- OpenDexter marketplace at
dexter.cash/opendexter - Agent search via
x402_searchMCP tool - A2A discovery at
{resourceId}.dexter.cash/agent.json(Google Agent-to-Agent v0.2.1 Agent Card) - Public API at
api.dexter.cash/api/dexter-lab/resources/public
Resources are sorted by recency (default) or popularity (by request_count).
Revenue
- 70% goes to the creator wallet
- 30% goes to the platform
- Payouts run automatically at noon and midnight ET
- Check balance:
GET /api/dexter-lab/wallets/{resourceId}/balance - View payout history:
GET /api/dexter-lab/resources/{id}/payouts - View revenue over time:
GET /api/dexter-lab/resources/{id}/revenue-series