Pay with a wallet
Use an installed EVM wallet, or open Coinbase Wallet through a desktop QR code or mobile handoff.
API Acre verifies the exact x402 price, Base network, recipient, and request before any wallet opens. One successful call costs $0.025 USDC.
API Acre never receives your private key; signing stays inside your wallet.
Connecting opens Coinbase Wallet. It does not sign or pay.
Both routes use this exact verified request and one-call price. Nothing is connected, signed, installed, or paid until you continue.
Use an installed EVM wallet, or open Coinbase Wallet through a desktop QR code or mobile handoff.
Copy a command locked to this endpoint, request, and exact USDC cap. Copying is inert; running it may install the official CLI and pay after its authentication and policy checks.
No ETH gas needed. Connecting does not sign or pay. This EIP-3009 payment needs only the displayed USDC on Base because the facilitator submits settlement. Reject any later prompt that differs from the verified amount or recipient.
Running this command may automatically spend up to $0.025 USDC. npx --yes approves package installation. Use a separate low-value wallet and review the verified request first.
npx --yes awal@latest x402 pay https://apiacre.com/v1/developer/code-metrics \
-X POST \
-d '{"code":"def greet(name):\n return f'"'"'Hello {name}'"'"'","language":"python"}' \
--max-amount 25000 \
--jsonThe first command checks without paying; running fetch may pay up to the same exact cap.
npx --yes agentcash@latest check https://apiacre.com/v1/developer/code-metrics
npx --yes agentcash@latest fetch https://apiacre.com/v1/developer/code-metrics \
--method POST \
--header 'content-type: application/json' \
--body '{"code":"def greet(name):\n return f'"'"'Hello {name}'"'"'","language":"python"}' \
--payment-protocol x402 \
--payment-network base \
--max-amount 0.025Code metrics returns structured JSON. This example is static; the paid call returns a fresh result and settlement receipt.
{
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "developer.code-metrics",
"version": "1",
"data": {
"language": "python",
"source": {
"sha256": "d588756864c1c6b9016a1829ea9283915950ef23e5b1c04018413ed71456a34e",
"characters": 43,
"utf8Bytes": 43
},
"lines": {
"total": 2,
"code": 2,
"comments": 0,
"blank": 0
},
"classes": 0,
"functions": 1,
"branchPoints": 0,
"estimatedCyclomaticComplexity": 1,
"complexityPerFunction": 1.0,
"maximumFunctionComplexity": 1,
"functionMetrics": [
{
"name": "greet",
"kind": "function",
"line": 1,
"endLine": 2,
"lines": 2,
"parameters": 1,
"branchPoints": 0,
"estimatedCyclomaticComplexity": 1
}
],
"functionsTruncated": false,
"syntax": {
"engine": "python-ast",
"valid": true,
"error": null
},
"maximumLineLength": 26,
"averageLineLength": 21.0,
"commentDensity": 0.0,
"blankLineDensity": 0.0,
"longLineCount": 0,
"workMarkerCount": 0,
"maintainabilitySignal": 95,
"reviewSignals": [],
"analysis": {
"version": "apiacre-code-metrics/3",
"method": "Python AST with deterministic lexical metrics",
"limitations": [
"AST complexity is a static heuristic, not a runtime or control-flow proof.",
"Comment counts include comment-only lines, not inline comments or block-comment spans."
]
}
},
"meta": {
"duration_ms": 42,
"cached": false,
"sources": [],
"warnings": [],
"next_actions": [
{
"service": "developer.code-change-review",
"title": "Code change review",
"reason": "Compare the measured source with a caller-supplied baseline and surface syntax, complexity, function, and maintainability regressions.",
"method": "POST",
"path": "/v1/developer/code-change-review",
"price": "$0.05",
"input_template": {
"before": "$baselineSourceCode",
"after": "$request.code",
"language": "$request.language",
"filename": "$filename"
},
"use_output": "Inspect result.data.reviewDecision, findings, and functionChanges before approving the change.",
"authorization_required": true
},
{
"service": "data.schema",
"title": "Schema inference",
"reason": "Create a reusable validation contract for code-quality metric snapshots.",
"method": "POST",
"path": "/v1/data/schema",
"price": "$0.025",
"input_template": {
"content": "$json([$result.data])",
"format": "json"
},
"use_output": "Use result.data.schema to validate future metric snapshots.",
"authorization_required": true
}
]
}
}Connected wallet:
Signing authorizes only the verified amount and recipient for this request. Reject the wallet prompt if anything differs.
The default request is verified automatically. Editing it invalidates the quote and requires this no-payment verification again.
Prefer your own client? Use the official x402 SDK examples. Browser checkout requires an EVM wallet with USDC on Base; command-line buyers require their own separately configured wallet and spending policy.