Home · Read a fictional supplier-check example / 先看懂报告示例 · Matching sample JSON · Live API schema
New to CN Evidence? See what the output can and cannot tell you before configuring a wallet. It is a fictional worked explanation, not a live report or a supplier-safety verdict.
Paid data, not a free MCP lookup. Connecting MCP and listing tools are not purchases. Basic costs 0.032 USDC; Full costs 0.093 USDC. Check the live quote before signing. Payment is x402 v2, exact, USDC on Base mainnet (eip155:8453), not Base Sepolia.
连接成功不等于能付款。 查询需要买方的钱包、Base 主网 USDC 余额和消费授权。钱包由买方保管,不要向我们、聊天窗口或公共配置提交私钥。当前没有预充值 API Key 方案;原生 MPP 暂停。
| Your client | What is needed |
|---|---|
| AgentCash-enabled agent | Its wallet setup, sufficient Base USDC and owner spending approval. Use our HTTP routes. Documentation-level candidate; no funded end-to-end compatibility certification is claimed. |
| Custom x402 HTTP client | x402 v2 exact/EVM signer and guarded signature/retry flow. Validate network, asset, recipient and amount against the approved operation before signing. |
| x402-aware MCP client | Must interpret the tool's Payment Required result and send the SDK's MCP payment metadata. HTTP payment headers are not a substitute for MCP metadata. |
| Plain remote MCP client | Can discover tools; requires an x402 payment client or local HTTP-to-MCP payment bridge to buy data. Do not assume the host supplies a wallet. |
Read the sample and schema first. The following request only gets a quote. It has no payment signature, is marked as an internal/developer test and does not buy a report:
curl -i -H "X-CN-Traffic: internal_test" https://api.cnevidence.com/x402/cn/supplier/evidence/basic
HTTP 402 means payment is required, not server downtime. For native MCP, HTTP 200 may carry result.isError=true and structuredContent.error="Payment Required"; that is not company data or a completed purchase. Do not repeatedly retry without a valid payment client.
Use POST to https://mcp.cnevidence.com/mcp with Content-Type: application/json and Accept: application/json, text/event-stream. Prefer a current Streamable HTTP MCP SDK for the normal initialize/notification lifecycle. This stateless service also accepts the following direct tools/list diagnostic; it lists tool definitions only, not company data.
Download mcp-tools-list.json into your current folder. On Windows PowerShell use curl.exe explicitly:
curl.exe -i "https://mcp.cnevidence.com/mcp" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "X-CN-Traffic: internal_test" --data-binary "@mcp-tools-list.json"
On macOS/Linux replace curl.exe with curl. Expected: HTTP 200 with three tool definitions. No wallet or company identity is needed. The internal-test header is for diagnostics only; omit it for real customer queries.
| Result | Meaning and action |
|---|---|
| 406 / Client must accept application/json | The current JSON-response service rejects Accept: */*, text/html, or text/event-stream alone on POST. Send the explicit Accept header above. A browser address-bar visit is not an MCP handshake. Do not repeatedly retry unchanged requests. |
| 400 / JSON-RPC error | Check valid JSON, method, protocol negotiation and request shape; read the returned error. Not automatically a server outage. |
| 404 / 405 | Check endpoint and method. MCP is /mcp; the HTTP Full report is POST, not GET. The protocols are not interchangeable. |
| 422 / invalid_tool_input | Check company/USCC and the nesting: Basic uses query, Full uses request. Correct identity before purchase. |
| HTTP 402 or MCP Payment Required | Connection can be working; a configured payment client and explicit authorization are still required. This is not a delivered report. |
| 5xx / timeout | Record time, request ID if available and sanitized error. If payment may already have been submitted, reconcile first rather than blindly buying again. Never share signatures or private keys in diagnostics. |
上述错误数字是请求结果,不是客户数量。连接探测、页面抓取和付款查询必须分开统计。
New: free input preflight, not a lookup. Before purchasing, POST a JSON object with company or uscc to https://api.cnevidence.com/free/cn/identity/preflight. It checks local format and prepares Basic/Full HTTP and MCP request shapes. It makes no upstream call, needs no wallet, and cannot verify company existence, USCC checksum, name/code agreement or absence of risk.
Alternatively call the existing free MCP tool resolve_china_company with company and/or uscc. Despite its legacy name, it does not resolve entities. An English-only brand/name prompts you to obtain a Chinese legal name or USCC; it is never translated into an assumed company.
Download the fictional diagnostic input and run:
curl.exe "https://api.cnevidence.com/free/cn/identity/preflight" -H "Content-Type: application/json" -H "X-CN-Traffic: internal_test" --data-binary "@preflight-input.json"
Expected for this English-only example: input_ready: false and guidance to obtain the legal identifier. A correctly formatted Chinese name/code can return input_ready: true, but always identity_verified: false. This is not permission to pay. Confirm the entity separately; do not auto-purchase just because preflight passes. Omit the internal-test header for real user preparation; do not upload identity documents or unrelated personal information.
company: exact Chinese registered legal name, or uscc: 18-character Unified Social Credit Code.Basic HTTP: GET /x402/cn/supplier/evidence/basic?uscc=YOUR_CONFIRMED_USCC
Full HTTP: POST /x402/cn/supplier/evidence
JSON body: {"uscc":"YOUR_CONFIRMED_USCC"}
MCP endpoint: https://mcp.cnevidence.com/mcp
Basic tools/call params:
{"name":"get_china_supplier_evidence_basic","arguments":{"query":{"company":"CONFIRMED_CHINESE_LEGAL_NAME"}}}
Full tools/call params:
{"name":"get_china_supplier_evidence_full","arguments":{"request":{"company":"CONFIRMED_CHINESE_LEGAL_NAME"}}}
Download and review purchase-client.mjs and recovery-client.mjs. The purchase example defaults to free preflight and quotation. Explicit --pay permits one signed attempt, pins the chain, asset, recipient and price, and saves a private recovery credential before signing. On an uncertain response it attempts free recovery once, never another purchase. It is an HTTP example, not a plug-in that makes a plain MCP host pay.
npm install @x402/core@2.25.0 @x402/evm@2.25.0 viem@2.56.3 # Free preview, no wallet required: node purchase-client.mjs --tier basic --company "CONFIRMED_CHINESE_LEGAL_NAME" # Only after purchase approval and secure local wallet configuration: node purchase-client.mjs --tier basic --company "CONFIRMED_CHINESE_LEGAL_NAME" --pay --max-usdc 0.032 --state NEW_PRIVATE_RECEIPT.json --out NEW_REPORT.json # Full uses --tier full and --max-usdc 0.093. # After an interruption, keep the SAME receipt and do not start another purchase: node recovery-client.mjs status NEW_PRIVATE_RECEIPT.json node recovery-client.mjs recover NEW_PRIVATE_RECEIPT.json --out RECOVERED_REPORT.json
Provide CN_EVIDENCE_PRIVATE_KEY only through a trusted local secret manager or protected environment, never a command-line argument, chat, source repository or our server. Keep receipt/report files in a private folder; Windows users must restrict its ACL. The per-attempt cap is not a cumulative wallet budget: creating new receipt files can authorize more purchases. Existing files are never overwritten. New client tests cover simulated timeout/recovery and live unpaid Basic/Full quotes; this exact packaged client has not had a separate funded acceptance run. Earlier service acceptance is described below.
Only run after the owner approves the purchase and confirms the entity. These commands can spend wallet funds. Configure and review the buyer tool's controls first; the examples themselves do not enforce a cumulative budget. Do not use an unrestricted auto-paying client if you require an enforced budget.
npx agentcash@latest fetch "https://api.cnevidence.com/x402/cn/supplier/evidence/basic?uscc=YOUR_CONFIRMED_USCC"
npx agentcash@latest fetch "https://api.cnevidence.com/x402/cn/supplier/evidence" -m POST -b '{"uscc":"YOUR_CONFIRMED_USCC"}'
For production pin a reviewed client version. For a custom SDK enforce per-call caps (Basic 0.032, Full 0.093 USDC), a separate total budget, approved destination/asset/network, and no blind retry after an uncertain payment. Save receipts securely and reconcile before purchasing again. Never accept a changed quote automatically.
The free JSON is hand-authored fictional schema guidance, not a live API response. It performs no query. Each selected list is page 1, at most 10 records; no automatic history or pagination. “No records” is not proof of no risk. Nine modules are not nine fields, and this is not a complete due-diligence or supplier-safety judgment.
本示例完全虚构,不能作为真实企业证据。不要把示例下载、工具发现或内部测试算成客户成交。
On 2026-09-22 we completed owner-funded internal acceptance: HTTP Basic (0.032 USDC), MCP Full (0.093 USDC), and MCP Basic with its original response body discarded and then recovered twice (0.032 USDC, no extra payment or upstream query on recovery). Chain transfers, client reports and server records were checked. These are internal tests, not customers or certification of AgentCash or every third-party client.
Configure before the purchase. Generate 32 cryptographically random bytes and encode them as 64 lowercase hexadecimal characters. Save this unique secret securely before signing. Send it as X-CN-Recovery-Token on the actual paid HTTP or MCP POST request. Do not reuse it for a different purchase. The server stores its hash, not the token. A public transaction hash, payment signature, nonce or order ID is not a recovery credential.
If the original connection or response is lost, send the following JSON by HTTPS POST to https://api.cnevidence.com/free/cn/payment/recover with Content-Type: application/json. Do not attach a payment signature. The same recovery endpoint supports both HTTP and MCP purchases.
{"recovery_token":"YOUR_SAVED_64_HEX_SECRET","include_report":true}
This operation never charges or calls the upstream provider. include_report:false requests status only. HTTP 200 with state: settled returns the original report when requested; 202 means settlement is not confirmed and requires reconciliation; 404 means no matching order; 410 means the recovery window expired. Do not interpret an unknown order or timeout as permission to pay again.
The report is retrievable for 24 hours from preparation; expired bodies are removed on subsequent recovery/storage access. This is not permanent storage or a refund guarantee. Requests without the header, purchases before this feature, and lost tokens do not get automatic recovery. Clients must implement the header and recovery call; adding a plain MCP URL does not do this automatically. Recovery credentials belong only in the header or HTTPS JSON body, never a URL, public log, or support email.
If you have the original recovery secret and an existing Base transaction hash from your payment receipt, add transaction_hash to the recovery JSON. This does not send a transaction. The server checks finalized Base USDC events, matching the original payer and authorization nonce, the configured recipient, and exact amount. Only a matching confirmed payment releases the stored report. A transfer alone, a public hash alone, or a wallet balance change is insufficient.
{"recovery_token":"YOUR_SAVED_64_HEX_SECRET","include_report":false,"transaction_hash":"YOUR_EXISTING_0x_TRANSACTION_HASH"}
Checks are limited to once per minute per uncertain order. Pending, not-finalized, mismatched, rate-limited or unavailable RPC results do not mean unpaid: do not buy again automatically. A missing transaction hash, ambiguous/multiple USDC events, lost/expired report, or changed recipient configuration may still require manual support. This relies on a public RPC with no availability guarantee, is not an automatic refund, and does not guarantee recovery from every crash. Finalized-chain matching was tested against an existing real internal transaction and an isolated simulated uncertain order; we did not manufacture a new live settlement failure.
Storage failure handling (new opted-in orders): Before settlement, the service stores an integrity hash and a second private local report copy. If the primary record is missing, corrupted or modified, recovery can restore the matching copy without another purchase or upstream query. Both copies use the same 24-hour window. This is not off-site disaster recovery and does not cover complete disk/database loss, lost credentials or requests made before this feature.
If a confirmed-paid report cannot be restored before expiry, the response is HTTP503 with error: stored_report_unavailable and a deduplicated refund.status: review_required. This is a review record, not a completed or promised refund. A separate bounded worker now processes eligible confirmed server-side delivery/storage failures: full original amount, original on-chain payer only, at most 1 USDC per UTC day. It rechecks restored reports and finalized chain evidence, retains uncertain reservations, and never blindly resends. Wrong identity, normal expiry, lost credentials and already delivered reports are not automatically eligible. HTTP409 means execution reconciliation is required. Only refunded_confirmed means the refund was independently finalized on-chain; the recovery endpoint itself never transfers money.
One owner-authorized 0.032 USDC internal refund was finalized and reconciled on 2026-09-22. This is not customer activity or a blanket refund guarantee. The signer runs on a separate operator computer every five minutes while that computer is online and its user is logged in; it is not an always-on cloud signer. Insufficient funds, unavailable RPC/relay, daily cap or ambiguous transactions require follow-up. Health status expires if the worker stops.
As of 2026-09-24, encrypted audit-ledger and monitoring backups run hourly on the server and are stored privately off-server with a 30-day retention policy. A timer-triggered backup was downloaded, decrypted and integrity-checked successfully. This backup excludes report bodies, recovery credentials, wallet keys and live payment runtime state: it does not extend the 24-hour report-recovery window or provide full-server/payment-state disaster recovery. Decryption uses an operator-held age recovery key, not Windows DPAPI. The separate refund signer still depends on the operator computer as described above; cloud backups do not make it always-on. Never restore a stale ledger into an active signer without chain reconciliation.
Download and inspect recovery-client.mjs. No dependencies, private keys, signing, purchases or automatic retries. It can generate a recovery file, check MCP connectivity, query status, and save a recovered report. Use a private folder outside Git, cloud sync and shared storage; on Windows ensure its access permissions are restricted to your user. The helper never prints the token or report. It refuses to overwrite existing output files.
node recovery-client.mjs init private-recovery.json node recovery-client.mjs diagnose node recovery-client.mjs status private-recovery.json node recovery-client.mjs recover private-recovery.json --out recovered-report.json # For an uncertain order, supply an existing transaction hash (not a new payment): node recovery-client.mjs status private-recovery.json --txhash YOUR_EXISTING_0x_TRANSACTION_HASH
Important: init only creates a private file containing recovery_token and headers. Your separately configured payment client must read and send that X-CN-Recovery-Token header on the original paid request. This helper does not turn a plain MCP client into a paying client and cannot add recovery retroactively. Generate a unique file for each purchase. A diagnostic success proves tool discovery, not payment compatibility or a customer sale.
Official x402 bridge and spending-policy guide · AgentCash documentation. Reference examples may use test networks; this service uses Base mainnet. Our internal custom-SDK acceptance does not certify those other clients.