PageDelta gives an agent rendered Markdown, exact focus evidence, bounded line changes, optional visual evidence, hashes, and a payer-scoped cursor in one call. It costs $0.01 per public-page observation—no account, API key, plan, or subscription.
BitBooth is the non-custodial payment, delivery, replay, discovery, and receipt engine underneath PageDelta. The 40-service catalog remains live reference inventory, but PageDelta is the product we are asking agents to use. Veteran-owned, SDVOSB certified, CAGE + SAM.gov registered.
curl 'https://app.heinrichstech.com/discover.json?q=page%20changes&maxPrice=0.01'
curl -X POST https://app.heinrichstech.com/v1/free/echo -H 'content-type: application/json' -d '{"message":"hello from a curious dev"}'
The first PageDelta observation establishes a private baseline scoped to the payer, canonical URL, and extraction mode. A later observation returns the new rendered page and the bounded change since that payer's latest baseline. It does not claim that a page is true, and it does not access logins, paywalls, CAPTCHAs, or private networks.
curl -X POST https://app.heinrichstech.com/v1/cdp/render-pro -H 'content-type: application/json' -d '{"url":"https://example.com","focus":"Example Domain"}'
These 40 first-party services exercise BitBooth's discovery, checkout, settlement, and delivery paths. Hit a listed URL with curl and its live x402 v2 challenge names the exact (network, asset, payTo) tuples that route accepts. The machine-readable source of truth lives at /bazaar.json. Seller routes are private by default and are not automatically published in this catalog.
Smallest possible paid endpoint. Pay 0.001 USDC, get a JSON echo back. Reference implementation of the x402 + CDP Facilitator + Bazaar discovery loop.
curl -X POST https://app.heinrichstech.com/v1/cdp/echo
Take any almost-JSON string (LLM tool output, broken API response, etc.), fix common errors (trailing commas, single quotes, unquoted keys, missing brackets), and optionally validate against a JSON Schema. Built for AI agents that wrap every tool call in defensive parsing.
curl -X POST https://app.heinrichstech.com/v1/cdp/json-repair
Structured synthetic data on demand. Pass a template like { name: "person.fullName", email: "internet.email" } and a count, receive an array of records ready to seed forms, populate test databases, or feed mock data into prompt examples.
curl -X POST https://app.heinrichstech.com/v1/cdp/faker
JSON Schema validation + optional auto-coercion + a confidence score for any LLM tool-call payload. Pair with /v1/cdp/json-repair to fix malformed JSON first, then validate against your tool schema. Built for agents that need a programmatic gate between the model and downstream system calls.
curl -X POST https://app.heinrichstech.com/v1/cdp/llm-tool-validate
Pay 0.01 USDC, get DNS records for any hostname. Supports A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, CAA. Built on Node's built-in resolver with a 5s timeout cap; rejects IPv4/IPv6 inputs. Built for agents inspecting infra, debugging delivery, or pre-flighting a target hostname.
curl -X POST https://app.heinrichstech.com/v1/cdp/dns
Pay 0.005 USDC, verify a webhook signature against the provider canonical HMAC scheme. Supports stripe, github, vercel, cdp, slack, and generic HMAC-SHA256. Constant-time compare, clock-skew tolerance on timestamp-bearing providers. Stateless — caller supplies their secret in the request body, BitBooth never stores it. The boring API plumbing primitive every agent reinvents poorly.
curl -X POST https://app.heinrichstech.com/v1/cdp/webhook-sig-verify
Pay 0.005 USDC, verify a JWT signature plus the canonical claims (iss / aud / exp / nbf) against an inline publicKey (PEM) or sharedSecret. Supports HS256/384/512 + RS256/384/512. Constant-time HMAC compare, configurable clock-skew tolerance, alg=none rejected. Stateless — caller supplies their key in the request body, BitBooth never stores it. Same plumbing-primitive thesis as webhook-sig-verify, different protocol family.
curl -X POST https://app.heinrichstech.com/v1/cdp/jwt-verify
Pay 0.008 USDC, strip emails, phones, SSNs, credit cards, IPv4 addresses, and hex-looking secrets from a text blob before passing it to an LLM, log sink, or third-party API. Pure regex — no LLM inference, deterministic output, sub-cent per call. Compliance primitive for agents in regulated industries (health, finance, legal). Byte counts on the response are auditable evidence of redaction for SOC2 / HIPAA logs.
curl -X POST https://app.heinrichstech.com/v1/cdp/pii-redact
Pay 0.005 USDC, safely compile + run a regex against a corpus with a hard 50ms CPU deadline. Returns structured matches (index, length, full match, capture groups). Supports JS engine flags g/i/m/s/u/y/d. Catastrophic backtracking surfaces as a regex_timeout instead of stalling the caller. The plumbing primitive every agent that consumes user-supplied regex reinvents poorly.
curl -X POST https://app.heinrichstech.com/v1/cdp/regex-test
PageDelta by BitBooth: pay $0.01 once to render a public page, extract bounded Markdown and exact focus evidence, capture an optional visual snapshot, and compare it with this payer's previous observation. Returns hashes, a tracking cursor, a content-bound observation ID, and settled payment identity. No API key or subscription.
curl -X POST https://app.heinrichstech.com/v1/cdp/render-pro
At $0.001 per check, monitor any public URL without carrying page state. BitBooth stores a payer-scoped SHA-256 baseline and reports whether the content, HTTP status, redirect, or content type changed. The first check returns changed:null; page content is never returned or stored. Built for frequent agent heartbeats, release monitors, and pricing alerts.
curl -X POST https://app.heinrichstech.com/v1/cdp/web-watch
Pay 0.001 RLUSD for an actionable XRPL agent-wallet heartbeat: spendable XRP after reserves, canonical RLUSD trust-line health and call runway, validated activity, balance deltas, failed transactions, and new destinations. The first call establishes a private payer-scoped baseline and skips historical activity.
curl -X POST https://app.heinrichstech.com/v1/cdp/xrpl-wallet-watch
Render any URL with full Playwright JS rendering, then return both the current markdown snapshot AND a structured diff against the previous snapshot. BitBooth stores the baseline server-side per payer wallet and URL, so a monitoring agent sends just a URL and learns whether the page changed, what changed, and when it was last checked, while carrying no state of its own. Supply previousMarkdown to diff against your own copy instead.
curl -X POST https://app.heinrichstech.com/v1/cdp/web-diff
Pay 0.012 USDC, hand in 1..5 EVM addresses, get back per-address native ETH + USDC holdings on Base mainnet plus a top-level totals rollup. Built for agents tracking treasury splits across multiple wallets or pre-flighting a counterparty across known addresses.
curl -X POST https://app.heinrichstech.com/v1/cdp/portfolio-scan
Pay 0.008 USDC, get a normalised JSON view of any RSS 2.0 or Atom 1.0 feed. One shape regardless of protocol: feed metadata plus an items array with HTML-stripped content snippets. Capped at 2MB body and 10s timeout, SSRF-blocked. Built for agents monitoring news, releases, blog updates, GitHub release feeds, status pages, podcasts.
curl -X POST https://app.heinrichstech.com/v1/cdp/rss
Pay 0.01 USDC, hand in a domain, get back the canonical site URL list discovered via robots.txt + sitemap.xml + sitemapindex chain. Returns a flat deduped list of {loc, lastmod, changefreq, priority} entries capped at 5000 URLs per call, with sitemapindex follow-through capped at 5 child sitemaps. SSRF-blocked, body-capped at 5MB, 10s timeout. Built for crawlers, SEO auditors, and agents that enumerate URLs before paying for the heavier render-pro extraction.
curl -X POST https://app.heinrichstech.com/v1/cdp/sitemap
Pay 0.01 USDC, get the parsed whois record for any domain — registrar, creation/updated/expiry dates, name servers, status flags, plus the raw whois text. Two-hop resolution via whois.iana.org then the authoritative registry over TCP port 43. 5s timeout cap per connection. Built for agents auditing domain ownership, monitoring expiry, or pre-flighting a target.
curl -X POST https://app.heinrichstech.com/v1/cdp/whois
Pay 0.005 USDC, get a VADER-style sentiment score for any English text blob — compound polarity in [-1, 1], a positive|neutral|negative label, a proportional breakdown across the three classes, and the token count. No LLM inference, deterministic output, sub-cent per call. Curated ~180-word lexicon with negation handling (×-0.74 within 3 tokens) and booster amplification (very/really/extremely ×1.293). Input capped at 10000 chars; tokenisation capped at 2000 tokens. Built for agents triaging support tickets, social mentions, review feeds, or chat transcripts before routing.
curl -X POST https://app.heinrichstech.com/v1/cdp/sentiment
Pay 0.01 USDC, send a URL, get the structured OpenGraph + meta-tag preview every link-preview / social-card / classify-before-scrape pipeline needs. Returns og:title, og:description, og:image, og:type, og:site_name, og:url, the full twitter:* card block, plus standard HTML head fields (title, description, canonical, favicon, lang). Pure JS regex extraction, no LLM, no headless browser. 8s timeout, 512 KB body cap, non-HTML rejected. The lightweight pre-flight before paying for the heavier render-pro extraction.
curl -X POST https://app.heinrichstech.com/v1/cdp/og-card
Pay 0.015 USDC, send a YouTube URL (youtube.com or youtu.be), get the full transcript as an array of {start, dur, text} segments in seconds plus total duration and detected language. Optional `lang` (ISO-639-1, e.g. "en", "pt-BR") selects a non-default caption track. InnerTube Android-client path first, classic HTML scrape fallback. No LLM, no headless browser. Errors surface as 502 with reason (captions_disabled, no_captions, language_not_available, video_unavailable, rate_limited). Built for agents that summarise, classify, or search video content before paying for the heavier LLM token cost.
curl -X POST https://app.heinrichstech.com/v1/cdp/youtube
Latest block height for Ethereum or Base mainnet via eth_blockNumber. Pay 0.001 USDC, get the current chain tip as decimal + hex.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/block-number
Chain ID (EIP-155) via eth_chainId — confirm which network an RPC is on. Pay 0.001 USDC. Supports Ethereum and Base mainnet.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/chain-id
Current gas price via eth_gasPrice for Ethereum or Base mainnet — wei, gwei, and a human label. Pay 0.001 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/gas-price
Chain ID, latest block height, and gas price in one batched call for Ethereum or Base mainnet. Pay 0.002 USDC — three RPC reads, one receipt.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/network-info
Native ETH balance of any address on Ethereum or Base mainnet via eth_getBalance — wei + decimal ETH. Pay 0.002 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/native-balance
ERC-20 token balance for any wallet — USDC, USDT, DAI, or any token contract — via balanceOf eth_call, with decimals applied. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/erc20-balance
ERC-1155 balance via balanceOf(owner, id) eth_call — how many copies of a token_id a wallet holds. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/erc1155-balance
ERC-20 allowance via allowance(owner, spender) eth_call — how much a spender is approved to move. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/allowance
totalSupply() of an ERC-20 or ERC-721 contract via eth_call, with decimals applied when the contract exposes them. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/total-supply
Current owner of an ERC-721 token via ownerOf(tokenId) eth_call. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/nft-owner
Is an address a contract? eth_getCode — returns isContract, bytecode size, and keccak hash of the code. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/code
Read a raw storage slot from any contract via eth_getStorageAt. Ethereum or Base mainnet. Pay 0.005 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/storage
Next transaction nonce for any wallet via eth_getTransactionCount (latest + pending). Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/nonce
Full transaction by hash via eth_getTransactionByHash — from, to, value, input, gas fields. Ethereum or Base mainnet. Pay 0.008 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/tx
Transaction receipt via eth_getTransactionReceipt — status, gas used, logs (decoded count), contractAddress. Ethereum or Base mainnet. Pay 0.005 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/receipt
Block header + transaction hashes by number, hex, or tag (latest/safe/finalized) via eth_getBlockByNumber. Ethereum or Base mainnet. Pay 0.003 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/block
Simulate a read-only contract call via eth_call — to + data (+ optional from/value), returns raw return data. No transaction sent. Ethereum or Base mainnet. Pay 0.005 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/call
Estimate gas for a transaction via eth_estimateGas before signing it — to/data/value/from supported. Ethereum or Base mainnet. Pay 0.004 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/estimate-gas
Decoded ERC-20 Transfer logs for a token via eth_getLogs — sender, recipient, amount per event, filterable by address and block range (max 2,000 blocks). Ethereum or Base mainnet. Pay 0.005 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/erc20-transfers
Contract introspection via batched eth_call — name, symbol, decimals, totalSupply, and ERC-165 interface probes (ERC-20/721/1155 detection). Ethereum or Base mainnet. Pay 0.005 USDC.
curl -X POST https://app.heinrichstech.com/v1/cdp/chain/contract
A paid endpoint advertises its own accepts[] array. A route may expose one configured rail or several; chain-native products can deliberately pin one. The live challenge, not this overview, is the authority for price, asset, recipient, and network.
BitBooth has adapters for Base, Solana, XRPL, and Stellar. A particular route advertises only the rails whose recipient and issued-asset prerequisites are configured for that route; an agent chooses only from those live requirements.
Native XRP and XLM are not advertised until an expiry-bound FX quote derives a value-correct native amount. Public transaction hashes are bearer proofs, so LINK and XRPL EVM transaction-reference rails also remain disabled until the payment proof is request-bound.
Discovery is free and needs no install. Payment happens only after the agent chooses a service and accepts its live 402 terms.
Ask for a job in plain text and filter by network, asset, or maximum price. The response contains call-ready URLs, schemas, examples, and matching rails.
GET /discover.json?q=watch+wallet
Hit a listed endpoint with curl, Node, Python, or Go. Decode and validate its PAYMENT-REQUIRED challenge, choose one advertised signed stablecoin rail within policy, and retry the identical request with PAYMENT-SIGNATURE.
curl -X POST .../v1/cdp/echo
The public, clean-install-verified 2.3 buyer adds free discovery and spend-policy preflight inside MCP. Paid tools stay hidden until the operator explicitly configures a dedicated wallet and caps.
@bitbooth/mcp-fetch@^2.3.1
The agent calls a paid endpoint, decodes the route-specific x402 v2 PAYMENT-REQUIRED header, validates its accepts[] array, chooses one advertised requirement, signs, and retries the identical request with PAYMENT-SIGNATURE. A successful delivery includes a PAYMENT-RESPONSE receipt for the buyer to validate.
The first-party Base flow has a receipt-verified mainnet run. A seller rail is included in a production scope only after that seller route passes fresh settlement, receipt, paid-retry, and replay acceptance. Funds settle directly from the buyer to the seller's configured recipient.
Pay per call. No minimums. No commitment. Stop calling and you stop paying. The same atomic amount is advertised across the stablecoin chains so the agent picks based on liquidity, not price.
$0.001–$0.01 / call
Canonical prices from the live discovery catalog.
echo, json-repair, faker, webhook-sig-verify, jwt-verify, regex-test. Pure compute, sub-second response, no external dependencies.
$0.001–$0.015 / call
Network and chain data priced by work performed.
rss, dns, sitemap, whois, og-card, portfolio-scan, youtube, and the chain read family. Real network or chain IO behind one call.
$0.01–$0.08 / call
Browser compute priced from the canonical catalog.
PageDelta on render-pro gives agents bounded Markdown, exact evidence, an optional visual snapshot, and a payer-scoped prior-observation diff. web-diff remains the larger legacy comparison tool.
These are current first-party catalog prices, not seller plan prices or projected customer spend. An agent should enforce its own per-call and cumulative budget before authorizing payment.
The payment terms travel with the HTTP request, so an agent can inspect the exact requirement before signing.
Agents don't fill out signup forms. They have wallets. The wallet pays. That's the protocol.
Use a low-balance wallet plus client-enforced per-call and cumulative limits. The wallet balance is a durable ceiling, not a replacement for spend policy.
The payment proof is checked against the advertised route, amount, recipient, network, and replay controls before the paid result is delivered.
Agents buy PageDelta observations one at a time. There is no plan or subscription. BitBooth's broader gateway, catalog, and seller tooling remain supporting infrastructure. Seller accounts exist, but production qualification is manual; there is no active seller subscription or Launch Sprint offer, and no traffic guarantee.
Public source at github.com/Drock91/bitbooth-docs · self-hosted catalog at /bazaar.json · listed in awesome-x402
A visual demo of the broader adapter library that fires testnet settlements in parallel. It does not describe the rail set of every production route; each live 402 challenge does that. Click Race All to run it. Testnet only. No real money moves in this demo.
Click Race All as many times as you like. Testnet wallets refuel from public faucets if they ever run dry.
Start with PageDelta. Seller accounts are available for teams that need the wider platform, while production qualification remains a manual acceptance process.
Send a public URL, inspect the live 402, and authorize only an advertised $0.01 requirement that fits the agent's wallet and spend policy.
Open the PageDelta contract →Create a seller account to configure an existing public, allowlisted, Bearer-authenticated, or safe custom-header API route, its price, and payout wallets. Credential values stay in AWS Secrets Manager and production onboarding still requires route qualification and acceptance.
Create a seller account →Seller accounts can configure private pay-per-call routes and direct payout destinations. Production access still requires a manual route-fit, settlement, receipt, paid-retry, and replay acceptance review.
There is no active seller subscription or Launch Sprint offer, and no promise of catalog placement or traffic.
Create a seller account → Inspect the receipt + replay proof →