
proxy-shopping: buy anywhere with crypto through a proxy shopper
io.github.pad01gPublished by GitHub account pad01gv0.1.2Updated Oct 24, 2026
Buy at cash-only or unsupported shops with BTC via a proxy shopper and 2-of-3 escrow, or earn as one
Overview
Lets an assistant buy from cash-only or unsupported shops through a proxy shopper using BTC held in 2-of-3 escrow, and manage those orders.
- What you can do
- Inspect the network, relays, coordinators and trusted shopper/escrow combinations, and check the wallet identity, address and balance
- Find offers for a shop URL, region and payment, request a quote and review its validation, then accept it
- Track orders: status, timeline, next steps, cancel before funding, and report a shopper or escrow
- Move money with explicit confirmation: fund escrow, confirm receipt, open a dispute, co-sign a ruling or refund, reclaim after the timelock
- Back up the wallet mnemonic, and get plans and registry files for earning as a proxy shopper
- When to use it
- Useful when you want an agent to arrange a purchase at a shop that does not accept your payment method, with escrow and dispute handling, or when you are evaluating running a proxy shopper node. Not for ordinary card checkout or mainstream retail.
- Requirements
- Runs locally over stdio, normally as a Docker image with a volume mounted at /data for the key and orders (Node 22 also works without Docker). Optional environment variables: PS_NETWORK (ps-main or lab), PS_DATA_DIR, PS_LAB_URL, PS_CONFIG_URL, PS_COORDINATORS. Network access to Nostr relays and a BTC signet chain service.
Installation
In SourceWeft
- Open proxy-shopping: buy anywhere with crypto through a proxy shopper in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
proxy-shopping MCP server
An MCP server that lets an AI agent use the proxy-shopping P2P network as tools:
- Buy from cash-only or unsupported shops with crypto through a proxy shopper, with a 2-of-3 escrow. You pay BTC into a per-order escrow (you, the shopper, an escrow); the shopper buys and ships; you release the payment when the items arrive. If something goes wrong the escrow rules a split, and after the T2 timelock you can take everything back alone.
- Earn as a proxy shopper. A precise plan for running the always-online shopper node, and the registry entry for getting listed.
It runs next to the agent (stdio) as one participant with its own key. Protocol logic is @proxy-shopping/core, the
same code the web app runs. The session stays up while the server runs, so quotes, shipping updates and rulings keep
arriving and are stored in the data directory. Registry name: io.github.pad01g/proxy-shopping.
The public network ps-main is new. There may be no trusted shoppers yet (network_info says how many shopper ×
escrow combinations are trusted). Payments there are BTC on signet, a test network whose coins have no market
value. USDC is not available on ps-main yet.
Run
Claude Code:
Other clients (mcp.json):
The volume at /data holds the key and the orders. Keep it: without it you lose the key that controls the
escrow of every open order (back it up with export_backup). One data dir = one identity; use a separate volume per
agent or per person.
The local docker compose lab (proxy-shopping-go, demo server on http://localhost:8888):
MCPB bundle (Claude Desktop and other MCPB clients: open the file to install; needs Node 22+): proxy-shopping-<version>.mcpb
from the releases; build it with node packages/mcp/scripts/build-mcpb.mjs
after npm run build -w @proxy-shopping/core. Agents installing the server: llms-install.md.
Without Docker (Node 22, from the repository root): npm ci && npm run build -w @proxy-shopping/core -w @proxy-shopping/mcp,
then node packages/mcp/dist/server.js (bin proxy-shopping-mcp).
Tools
A purchase: network_info → wallet (fund it) → find_offers → request_quote → accept_quote → fund_order
→ (get_order until delivered) → confirm_receipt.
Every tool answers with a short text plus the same data as structured JSON.
Safety
- Tools that move money or disclose secrets do nothing without
confirm: true; without it they show what would happen (amounts, recipients, fees). An agent should show that to its human and ask before confirming. - A quote that fails validation (combination not trusted, escrow address that does not match our own computation, timelocks outside the policy, amounts that do not add up) cannot be accepted. A rate more than 10 % away from our own sources needs an explicit acknowledgement.
- Payouts are signed only for the template the protocol allows (release to the shopper, a refund to you, a ruling that
matches its split);
completed/settled/refundedare reported only once the chain shows the payment. - The mnemonic never leaves the data dir except through
export_backup. The delivery address is encrypted for the shopper; the escrow can read it only when you open a dispute. - Trust comes only from the coordinators you configure (
network_infolists them and where they came from). Orders are only as good as the shoppers and escrows that operators list.
Test
The unit tests drive every tool through an MCP client against core's in-memory world (relays, chain, a scripted
shopper and an escrow), and run the registry's own validator (proxy-shopping-registry/scripts/registry.ts validate) on
the files registry_entry writes; they expect ../proxy-shopping-registry next to this repository (or PS_REGISTRY_DIR,
or mounted at /proxy-shopping-registry; SKIP_REGISTRY=1 skips it). Add -v "$PWD/../proxy-shopping-registry":/proxy-shopping-registry:ro to the Docker command above.
Source: packages/mcp/README.md at commit 0185c47
Tools
0Version history
3- v0.1.2LatestSep 30, 2026
- v0.1.1Sep 30, 2026
- v0.1.0Sep 29, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts