Buy Talkshi Ads and Independent Evaluations with x402 or MPP

Talkshi exposes four fixed-price products payable through x402 v2 or MPP Tempo. x402 uses the exact scheme because every package has a known price before purchase; Base mainnet is the default network. Read the public catalog first:

GET https://talkshi.com/api/shop

The catalog returns current prices, fulfillment terms, and the four purchase endpoints. No Talkshi account is required. A stable request_id makes the paid retry idempotent.

Sponsored placement packages

Choose a fixed package:

Endpoint Default price Expected views
POST /api/shop/ads/micro $0.50 5
POST /api/shop/ads/starter $1.00 10
POST /api/shop/ads $5.00 50

Every package uses the same request body. The placement is reviewed before it runs, always carries a visible Sponsored label, and never changes organic marketplace ordering, ratings, or reviews.

curl -i -X POST https://talkshi.com/api/shop/ads \
  -H "content-type: application/json" \
  -d '{
    "request_id": "ad_acme_launch_001",
    "advertiser_name": "Acme Security",
    "destination_url": "https://acme.example/security-review",
    "headline": "Security reviews for growing software teams",
    "body": "Independent application-security reviews with scoped findings and remediation support.",
    "placement": "marketplace",
    "contact_email": "[email protected]",
    "acknowledge_sponsored": true
  }'

placement is marketplace, profiles, or blog. Supply either contact_email or a public HTTPS callback_url. The first request returns 402 Payment Required with both PAYMENT-REQUIRED and WWW-Authenticate. Choose one rail and repeat the same method, URL, and JSON:

Send only one payment credential.

Independent review request

POST /api/shop/reviews costs $50.00 by default. The fee funds an independent first-hand evaluation attempt and a private outcome report. It does not buy a rating, recommendation, publication, marketplace position, or removal of an existing review.

curl -i -X POST https://talkshi.com/api/shop/reviews \
  -H "content-type: application/json" \
  -d '{
    "request_id": "review_acme_api_001",
    "company": "Acme API",
    "test_url": "https://api.acme.example/public-demo",
    "evaluation_goal": "Test whether the documented public demo returns a usable result with clear pricing and recovery guidance.",
    "contact_email": "[email protected]",
    "acknowledge_independence": true
  }'

test_url must be a public HTTPS surface that can support a concrete first-hand test without credentials in the request. Fields that request a rating, sentiment, or verdict are rejected. Talkshi publishes an evaluation only when it can complete a qualifying test; any published result is labeled Commissioned evaluation and excluded from community rating aggregates.

Success and private status

Successful settlement returns 201 and the queued order. x402 responses include PAYMENT-RESPONSE; MPP responses include PAYMENT-RECEIPT.

{
  "ok": true,
  "order": {
    "id": "sho_0123456789abcdef0123456789abcdef",
    "product": "ads",
    "requestId": "ad_acme_launch_001",
    "status": "queued",
    "priceUsd": "5.00",
    "statusUrl": "https://talkshi.com/api/shop/orders/sho_0123456789abcdef0123456789abcdef",
    "statusAuthorization": "Bearer shop_..."
  }
}

Save statusAuthorization; it is required for private status reads:

curl -H "authorization: Bearer shop_..." \
  https://talkshi.com/api/shop/orders/sho_0123456789abcdef0123456789abcdef

Repeating the same body and payment with the same request_id returns the stored order without another settlement. Reusing request_id with changed details or a different payment returns 409.

AgentCash, x402scan, and mppscan discovery

The canonical AgentCash discovery document is:

GET https://talkshi.com/openapi.json

It is OpenAPI 3.1 and advertises all four paid operations with info.x-guidance, complete JSON request and successful-response schemas, realistic examples, responses.402, and dual-protocol x-payment-info. Each x-payment-info.price.amount is the current decimal USD price. The live challenges remain authoritative: x402 encodes USDC in token atomic units, while MPP advertises method="tempo", intent="charge", and the public realm="talkshi.com". An unauthenticated request reaches the payment challenge before Talkshi validates the order body.

Coinbase Bazaar discovery

All paid routes declare extensions.bazaar metadata with realistic inputs, JSON Schemas, output examples, an application/json response MIME type, service metadata, and an optional Base Builder Code. Coinbase indexes a route after its first successful settlement through the CDP Facilitator. The server requires CDP_API_KEY_ID, CDP_API_KEY_SECRET, X402_RECIPIENT_ADDRESS, and DATABASE_URL, plus a stable SHOP_TOKEN_SECRET (or existing MPP_SECRET_KEY) of at least 32 characters; Base mainnet is the default.

Set TALKSHI_X402_TESTNET=true to use Base Sepolia. An optional comma-separated TALKSHI_X402_NETWORKS can enable supported EVM networks: Base, Polygon, Arbitrum, and World on mainnet, or Base Sepolia and World Sepolia on testnet. GET /api/shop reports every enabled network.

Set TALKSHI_X402_BUILDER_CODE only to a registered Base Builder Code using 1–32 lowercase letters, numbers, or underscores. To add a Permit2 payment choice for another ERC-20, set TALKSHI_X402_PERMIT2_ASSETS to a JSON array:

[
  {
    "network": "eip155:8453",
    "asset": "0xTokenAddress",
    "amounts": {
      "ads-micro": "500000",
      "ads-starter": "1000000",
      "ads": "5000000",
      "reviews": "50000000"
    }
  }
]

Amounts are token atomic units and must be set deliberately for every product. The ordinary USDC EIP-3009 choice remains available. CDP supplies its supported gas-sponsoring extensions for EVM routes.

MPP Tempo requires TALKSHI_MPP_TEMPO_ENABLED=true, a stable MPP_SECRET_KEY of at least 32 characters, TEMPO_RECIPIENT_ADDRESS, and DATABASE_URL. Set TALKSHI_MPP_TEMPO_TESTNET=true only for testnet; Tempo mainnet is the default.

Optional price overrides are TALKSHI_AD_MICRO_PRICE_USD, TALKSHI_AD_STARTER_PRICE_USD, TALKSHI_AD_PACKAGE_PRICE_USD, and TALKSHI_REVIEW_REQUEST_PRICE_USD.

Payment-free production verification

Run bun run check:x402-shop to inspect every live 402 challenge and submit each route to Coinbase's endpoint validator and settlement simulation. This does not sign a payment or transfer USDC. A protected daily Vercel cron runs the same check at /api/x402-health, returns a failure status when a required check fails, and emails the shop operator when Resend is configured; it requires CRON_SECRET.

Bazaar indexing is reported but does not fail the check because Coinbase indexes each route after its first genuine successful settlement. A real $0.50 Base-mainnet settlement already verified the production payment path; routine tests use the payment-free check rather than paying the receiver again.