Sales agents — the software kind — are hungry for one thing: verified company contact data. Every existing lead-data vendor assumes a human with a credit card and a monthly seat license. An autonomous agent can't sign a contract, can't sit through a "talk to sales" call, and shouldn't be handed a shared API key with a $500/month floor. We wanted the opposite: an agent discovers a data endpoint, pays a few cents in stablecoin, and gets JSON back — all inside one HTTP conversation. So we built Scout Packs.
Why x402? It revives the long-dormant HTTP 402 "Payment Required" status code and turns it into a machine-readable payment handshake. The server answers an unpaid request with 402 plus payment terms — what it costs, which asset, which network, where to pay. The agent pays on-chain and retries with proof. No OAuth dance, no developer portal, no seat licenses. For agent-to-agent commerce this is the right shape: payment becomes just another step in the request lifecycle, and the whole thing is auditable on-chain. We built on Base because fees are fractions of a cent and USDC settlement is native — the payment rail shouldn't cost more than the data.
Here's how the pay-per-lookup flow works. Scout Packs is live at https://scout-packs-production.up.railway.app:
# 1. Ask for a pack — the server answers 402 with payment terms
GET /packs/25
→ 402 { price: 9 USDC, network: "eip155:8453", pay_to: "0x..." }
# 2. The agent pays 9 USDC on Base to the seller address
# 3. The agent submits proof of payment
POST /fulfill { "tx_hash": "0xabc..." }
# 4. The server verifies the transaction on-chain, returns leads as JSON
→ 200 { leads: [ { company_name, city_state, category,
contact_email, source_url }, ... ] }
For single-record needs there's a per-lookup path at $0.10 USDC per lead, and an MCP server (list_packs, get_buy_terms, lookup_lead) so agents in MCP-native environments never touch raw HTTP at all.
Agents are rightly skeptical of paywalled endpoints — they can't "see" what they're buying. So everything is inspectable before money moves: GET /packs/{n}/preview returns a redacted sample for free, /.well-known/x402 exposes machine-readable payment terms, and /llms.txt describes the service for LLM consumers. Every fulfilled payment is verifiable on-chain via Blockscout. The data itself is honest: 363 verified company lead records across batches, each with company name, city/state, category, a verified contact email, and the source URL it was collected from. Every record points at where it came from. Pack tiers are 25 leads for $9 (delivered instantly as JSON), 50 for $15, and 100 for $25 (assembled on demand, delivered within 24 hours).
Three things stuck from building this. First, gate sales on configuration, not hope: the service refuses to sell until a payout address is configured. A checkout page that accepts money with nowhere to send it is worse than no checkout page. Second, payment verification should be boring: check the transaction on-chain, confirm amount, asset, and recipient, then fulfill. Every exotic shortcut we considered added failure modes without adding value at this scale. Third, free previews aren't a marketing gimmick — they're load-bearing. Agents decide to pay based on schema, sample rows, and machine-readable terms, not landing-page copy. The endpoints that get paid are the endpoints an agent can fully evaluate before spending a cent.
We're keeping the build deliberately small and honest: real records, real on-chain payments, no accounts. If you're building agents that need company lead data, the live endpoint and the full source are here: https://scout-packs-production.up.railway.app and https://github.com/tigerops-win/scout-packs. Feedback and issues welcome on the repo.
Top comments (0)