Synthex Forge — x402 Paid Agent Services
RemoteAbout Synthex Forge — x402 Paid Agent Services
Synthex Forge's x402 client SDK handles payment-required responses, signing and retries for paid services settled in USDC on Base. It is for developers and agents calling those services; signed results can be verified locally without a network call.
Key features
- 01Python and TypeScript SDKs
- 02Automated x402 payment and retry flow
- 03Local Ed25519 signature verification
- 04Mock mode for offline testing
- 05Paid services and free verification tools
Use cases
- 01Calling a paid service with USDC on Base
- 02Checking a signed result locally
- 03Testing the payment flow without charges
MCP support
The remote Streamable HTTP MCP server at `https://x402.synthexforge.com/mcp` exposes service tools for preflight checks, validation, policy, rates and signature verification, along with health status. Several service calls are paid in USDC on Base; verification and health are free.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://x402.synthexforge.com/mcpclaude mcp add --transport http com-synthexforge-x402-paid-agent-services https://x402.synthexforge.com/mcp{"mcpServers":{"com-synthexforge-x402-paid-agent-services":{"type":"http","url":"https://x402.synthexforge.com/mcp"}}}Open in Cursor{"servers":{"com-synthexforge-x402-paid-agent-services":{"type":"http","url":"https://x402.synthexforge.com/mcp"}}}Open in VS Code{"mcpServers":{"com-synthexforge-x402-paid-agent-services":{"type":"http","url":"https://x402.synthexforge.com/mcp"}}}{"mcpServers":{"com-synthexforge-x402-paid-agent-services":{"serverUrl":"https://x402.synthexforge.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEsynthex-x402
Client SDK for Synthex Forge's paid x402 services. USDC on Base mainnet.
One call. The 402 → EIP-3009 signing → retry loop is handled for you, and
verify() re-checks the Ed25519 signature on the answer locally, with
no network call and no cost.
from synthex_x402 import call, verify
result = call("/v1/preflight", {"target": "example.com"})
print(result["body"]["verdict"]) # 'go' | 'caution' | 'avoid' | 'unknown'
print(verify(result["body"])["valid"]) # True — re-checked locally
import { call, verify } from 'synthex-x402'
const result = await call('/v1/preflight', { target: 'example.com' })
console.log(result.body.verdict) // 'go' | 'caution' | 'avoid' | 'unknown'
console.log(verify(result.body).valid) // true — re-checked locally
Install
pip install synthex-x402 # Python 3.9+
npm install synthex-x402 # Node 18+
Try it without spending anything
python3 -m synthex_x402 --mock # Python
cd sdk/typescript && npm install && npm run mock
The mock runs the entire flow — 402, instruction parsing, signing, retry, signed result, local verification — against a local mock server with a throwaway key. Nothing leaves your machine and nothing is charged.
The remote MCP server
The same tools are available over the MCP streamable-HTTP transport:
POST https://x402.synthexforge.com/mcp
curl -X POST https://x402.synthexforge.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
- Manifest:
https://x402.synthexforge.com/.well-known/mcp.json - A2A agent card:
https://x402.synthexforge.com/.well-known/agent.json - Registry:
com.synthexforge.x402/paid-agent-serviceson the official MCP Registry (registry.modelcontextprotocol.io)
The services
Every tool is a thin adapter over the same paid HTTP route, so the MCP surface and the HTTP surface can never disagree about price or behaviour.
| Tool | Route | Price | What it answers |
|---|---|---|---|
preflight | POST /v1/preflight | $0.01 | Should I pay this counterparty? |
edge_prior | POST /v1/edge/prior | $0.05 | What has already been tested here? |
x402_index | POST /v1/x402/index | $0.02 | What does the agent economy offer, and does it work? |
data_validate | POST /v1/data/validate | $0.02 | Is this payload valid against this schema? |
policy_check | POST /v1/policy/check | $0.10 | Is this action allowed under this policy? |
rates_reference | GET /v1/rates/reference | $0.01 | What is this amount worth, as-of stamped? |
verify_signature | POST /v1/settlement/verify | free | Re-verify a signed receipt you hold. |
health | GET /health | free | Is the service up, on which network? |
Payment rail
| Protocol | x402 v2, exact scheme |
| Asset | USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) |
| Network | Base mainnet (eip155:8453) |
| Method | EIP-3009 transferWithAuthorization |
payTo | 0xc8fF67FAE72596478599EAAcfad8656fAe1113c8 |
Configuration
| Variable | Meaning |
|---|---|
SYNTHEX_X402_PRIVATE_KEY | Your EIP-3009 signing key. Never logged, never returned. |
SYNTHEX_X402_KEY_FILE | Path to a file containing the key. |
With no key configured, call() does not pay — it returns the
payment_required instructions so you can decide.
Documentation
Six how-to guides, served live at
https://x402.synthexforge.com/docs:
- Verify a settlement receipt on Base
- Check an endpoint before paying it
- Validate a payload before trusting it
- Read a reference rate with staleness
- Buy and redeem a pass
- Prove a verdict was ours
Layout
sdk/python/ the Python package (PyPI: synthex-x402)
sdk/typescript/ the TypeScript package (npm: synthex-x402)
glama.json Glama registry metadata
Development
# Python
cd sdk/python && pip install -e . && python3 -m synthex_x402 --self-test
# TypeScript
cd sdk/typescript && npm install && npm run self-test
Both self-tests run offline and assert, among other things, that the EIP-3009 digest is byte-identical to the x402 library's own.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.