# Softbot Email Check (Softbot Studio) > Vet an email address or domain before sending to, signing up or accepting it. No SMTP mailbox probing. Pay per call over x402 v2 (HTTP 402) in USDC on Solana, Base, Polygon or Arbitrum. No signup or API key. Failed calls are not charged. Free trial: 3 free calls per wallet per endpoint via Sign-In-With-X (see below). ## Tools - POST https://softbot-emailcheck-mainnet.softbot.workers.dev/v1/email ($0.002 USDC per call) Email address check: verdict (deliverable_likely / risky / invalid) with reasons from syntax, MX/A records, disposable-provider list, role address, free provider, typo suggestion, SPF/DMARC/DKIM and domain age. One address per call. Request: JSON body {"email": "softbot@mail.grokbot.com"} Response 200 (application/json): email, domain, verdict, reasons, dns, auth, disposable, free_provider, role_address, typo_suggestion, typo_suggestion_email, domain_age - POST https://softbot-emailcheck-mainnet.softbot.workers.dev/v1/domain ($0.002 USDC per call) Email domain check: whether a domain can receive mail (MX/A, null MX), is disposable or a free provider, likely typo, SPF/DMARC/DKIM posture and registration age. One domain per call. Request: JSON body {"domain": "grokbot.com"} Response 200 (application/json): domain, verdict, reasons, dns, auth, disposable, free_provider, typo_suggestion, domain_age ## Payment (x402 v2, scheme exact, same price on every network) - Solana mainnet (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp): USDC EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, pay to 9csHbkGGeQqNxvtZw8hPnC34NCcmZoZXVTEGC1MiDNRE, facilitator PayAI (https://facilitator.payai.network) - Base mainnet (eip155:8453): USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, pay to 0xC68F3cCa31D50208ab4C933a38288938e0B21E63, facilitator Coinbase CDP - Polygon mainnet (eip155:137): native USDC 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359, pay to 0xC68F3cCa31D50208ab4C933a38288938e0B21E63, facilitator Coinbase CDP - Arbitrum One (eip155:42161): native USDC 0xaf88d065e77c8cC2239327C5EDb3A432268e5831, pay to 0xC68F3cCa31D50208ab4C933a38288938e0B21E63, facilitator Coinbase CDP - EVM networks use EIP-3009 transferWithAuthorization (EIP-712 domain name "USD Coin", version "2"); bridged USDC.e is not accepted. - Flow: POST without payment -> HTTP 402 with a PAYMENT-REQUIRED header -> retry with a PAYMENT-SIGNATURE header (any x402 v2 client, e.g. @x402/fetch, does this automatically). Settlement details come back in PAYMENT-RESPONSE. - Invalid input (4xx) and upstream failures (5xx) are not charged; payment settles only on success. ## Credit packs - Prepaid balance usable on every paid Softbot tool at the tool's existing price. Buy with x402 (USDC on Solana, Base, Polygon, or Arbitrum). No subscription and no withdrawal. - GET https://softbot-credits-mainnet.softbot.workers.dev/v1/packs lists the packs. POST https://softbot-credits-mainnet.softbot.workers.dev/v1/packs/starter pays $0.25 and receives $0.25 credit. POST https://softbot-credits-mainnet.softbot.workers.dev/v1/packs/regular pays $1 and receives $1.05. POST https://softbot-credits-mainnet.softbot.workers.dev/v1/packs/larger pays $5 and receives $5.50. - The purchase response contains credit_key once. It is a bearer secret (header X-Credit-Key). Store it. If that response is lost, POST the same PAYMENT-SIGNATURE to the same pack URL to get the same key; you are not charged again. - Tool call: header X-Credit-Key and header Idempotency-Key. GET https://softbot-credits-mainnet.softbot.workers.dev/v1/credits with X-Credit-Key returns the balance, for example {"balance_micros":247000,"balance_usdc":"0.247"} after a $0.003 call on a $0.25 pack. - Invalid key: 401, and neither x402 nor the free trial runs. Insufficient balance: 402 with error insufficient_credit and no PAYMENT-REQUIRED header. Key plus a payment or SIWX header: 400 ambiguous_credentials, nothing charged. Failed tool calls are refunded. GET and HEAD never debit. - A credit key cannot buy another pack. ## Free trial - Free trial: 3 free calls per wallet per endpoint via Sign-In-With-X. No funds or payment needed; failed calls do not use a trial; store-wide cap 200 free calls/day, then normal pricing. - POST once without payment -> 402. Take extensions["sign-in-with-x"] from the base64 PAYMENT-REQUIRED header, sign its info as SIWE (chainId eip155:8453, type eip191) or SIWS (Solana mainnet, type ed25519), then repeat the POST with your JSON body and header SIGN-IN-WITH-X: . No funds or payment needed; success returns x-trial: free and x-trial-remaining. - Copy-paste example (JavaScript, Node 20+): ```js // npm i @x402/core @x402/extensions viem import { decodePaymentRequiredHeader } from "@x402/core/http"; import { createSIWxPayload, encodeSIWxHeader } from "@x402/extensions/sign-in-with-x"; import { privateKeyToAccount, generatePrivateKey } from "viem/accounts"; const url = "https://softbot-emailcheck-mainnet.softbot.workers.dev/v1/email", wallet = privateKeyToAccount(process.env.KEY || generatePrivateKey()); // any EVM key, no funds needed const r402 = await fetch(url, { method: "POST" }); const ext = decodePaymentRequiredHeader(r402.headers.get("payment-required")).extensions["sign-in-with-x"]; const siwx = await createSIWxPayload({ ...ext.info, chainId: "eip155:8453", type: "eip191" }, wallet, url); const res = await fetch(url, { method: "POST", headers: { "content-type": "application/json", "SIGN-IN-WITH-X": encodeSIWxHeader(siwx) }, body: JSON.stringify({"email": "softbot@mail.grokbot.com"}) }); console.log(res.status, res.headers.get("x-trial-remaining"), await res.json()); ``` - Free calls return x-trial: free and x-trial-remaining. The softbot-mcp server (npx -y softbot-mcp) claims the trial automatically. ## Links - x402 discovery: https://softbot-emailcheck-mainnet.softbot.workers.dev/.well-known/x402 - OpenAPI: https://softbot-emailcheck-mainnet.softbot.workers.dev/openapi.json - Health: https://softbot-emailcheck-mainnet.softbot.workers.dev/health - Store (all Softbot tools): https://softbot-studio.pages.dev/llms.txt - Agent docs: https://softbot-studio.pages.dev/agents.md - GitHub: https://github.com/softbot-studio/softbot-agents - MCP server (npm): softbot-mcp (npx -y softbot-mcp; handles payment and the free trial) - Contact: softbot@mail.grokbot.com