skill
x402-places
POI concierge over OpenStreetMap Overpass with optional Yelp enrichment — restaurants, cafes, anything, per query, paid in USDC on Base or Solana via x402
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/nirholas/x402-places itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 25, 2026x402-places
POI concierge over OpenStreetMap Overpass with optional Yelp enrichment — restaurants, cafes, anything, per query. $0.002 in USDC on Base or Solana per call, and the places come back in the response body: opening hours, phone, website, address, cuisine, and the full OSM tag set.
Docs site: https://nirholas.github.io/x402-places/
Why x402 for this
Places data is either free-but-raw (you run your own Overpass client and parse OSM tags) or polished-but-gated (a commercial API with a key, a contract, and a monthly floor). Neither fits an agent that needs one clean answer about one neighbourhood, once. x402 makes the middle ground possible: the route quotes $0.002 in the 402 response, the agent pays on whichever chain it holds funds on, and it gets normalised POI records with no account, no key, and no minimum.
Quickstart
git clone https://github.com/nirholas/x402-places
cd x402-places
npm install
npm run dev # http://localhost:4022 — no configuration needed
See the price with no wallet at all:
curl -s "http://localhost:4022/search?lat=41.3851&lon=2.1734&radius=300&category=cafe&limit=2" | jq
# 402 + accepts: [ USDC on Base, USDC on Solana ]
Then buy it, from an agent (wallet funded with Base Sepolia USDC — https://faucet.circle.com):
PRIVATE_KEY=0xYourTestKey npm run client
API
| Route | Price | What you get back |
|---|---|---|
GET /search | $0.002 | POIs near the coordinate: name, category, geo, opening hours, phone, website, address, cuisine, full OSM tags |
GET /detail/:id | $0.002 | The complete OSM record for that place plus enrichment — rating, review count, price level and reviews (live Yelp when keyed, fixture otherwise) |
GET / | free | Service metadata, live prices, active payment rails, backend status |
GET /health | free | Liveness probe |
GET /.well-known/x402 | free | Machine-readable discovery manifest |
Full reference: docs/api.md · openapi.json
How x402 works
Pay in USDC on Base or Solana — your client picks the rail.
- 402 — the route, called without payment, replies HTTP 402 with an
acceptsarray holding both rails: exact price ($0.002 →2000USDC base units), asset, andpayTo. - Sign — on Base, the client signs an EIP-3009 USDC authorization (no gas
from the payer). On Solana, it signs an SPL
transferCheckedwhose fee payer is the facilitator's sponsor account (so the buyer needs USDC only, no SOL). - Settle — the server hands the payload to the facilitator
(
https://x402.org/facilitator), which verifies and settles on the chosen chain. - 200 — the same request returns the artifact in the body, with the
settlement receipt in the
X-PAYMENT-RESPONSEheader.
| Rail | Network | Asset | payTo |
|---|---|---|---|
| EVM | base-sepolia (base on mainnet) | USDC | 0x40252CFDF8B20Ed757D61ff157719F33Ec332402 |
| Solana | solana (solana-devnet on devnet) | USDC | WwwuGbqHrwF5RG89KhUbmRWEvjnRH9k5kVM5p7T3WwW |
Those are the suite's public receive addresses and the server's defaults. Set
PAY_TO_ADDRESS / SOLANA_PAY_TO_ADDRESS to be paid yourself.
Walkthroughs: examples/curl.md · examples/agent-client.ts · docs/tutorial.md
Real backend / API keys
| Env | Effect |
|---|---|
| (none — Overpass is keyless) | Place data is always live from the OpenStreetMap Overpass API. No key, no fixture mode. Set OVERPASS_URL to use your own Overpass instance. |
YELP_API_KEY | Live Yelp Fusion ratings and reviews on /detail/:id (enrichment.source: "yelp"). Free tier available. |
(YELP_API_KEY unset) | Deterministic fixture enrichment, labelled enrichment.source: "fixture". Same place → same numbers. The demo never requires a key. |
All variables: .env.example
For AI agents
- skill.md — agent-facing skill file: endpoints, prices, schemas, both payment rails. Point your agent at it.
GET /.well-known/x402— discovery manifest listing every resource with both networks. Indexable by x402scan.com, the x402 Bazaar, and agentic.market.- MCP — examples/mcp-tool.md exposes these routes as
Claude MCP tools, with per-wallet spend caps and a
claude_desktop_config.jsonexample. - More: docs/agents.md
Docs
Support
Questions, bugs, or a listing request: nichxbt@gmail.com · open an issue
License
Apache-2.0. Part of the x402 Suite.
Star History
Support the project
If x402-places saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Built for AI agents too
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/x402-places and it has the context it needs.
More from the same author
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion