BitBooth
PAGEDELTA · $0.01 PER OBSERVATION · NO BUYER ACCOUNT OR SUBSCRIPTION

Render a public page. Know exactly what changed.

free endpoint trials

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.

ZERO-INSTALL AGENT DISCOVERY · FREE · NO WALLET NEEDED
curl 'https://app.heinrichstech.com/discover.json?q=page%20changes&maxPrice=0.01'
Paste that URL into any web-capable agent. It returns ranked, call-ready services and only the payment rails matching the agent's policy. For a compact orientation file, use /llms.txt. No signing occurs during discovery.
TRY IT FREE · NO WALLET NEEDED · 5 CALLS PER IP PER HOUR
curl -X POST https://app.heinrichstech.com/v1/free/echo   -H 'content-type: application/json'   -d '{"message":"hello from a curious dev"}'
Or open the playground in your browser at app.heinrichstech.com/demo to run the same flow without curl.
One hero product: PageDelta Each result names its exact price, schema, example, and configured rails Request-bound payment, replay controls, and durable delivery
PAGEDELTA · $0.01 · BASE, XRPL, AND STELLAR MAINNETS

The web changes. Your agent should not have to rediscover everything.

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.

Rendered source
bounded Markdown plus an optional 1280×720 JPEG
Exact evidence
case-sensitive focus matches, hashes, warnings, and line changes
Durable identity
payer-scoped baseline, observation ID, and payment receipt
curl -X POST https://app.heinrichstech.com/v1/cdp/render-pro -H 'content-type: application/json' -d '{"url":"https://example.com","focus":"Example Domain"}'

The live reference catalog

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.

UTILITY

$0.001 · UTILITY

POST /v1/cdp/echo

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
$0.005 · UTILITY

POST /v1/cdp/json-repair

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
$0.005 · UTILITY

POST /v1/cdp/faker

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
$0.008 · UTILITY

POST /v1/cdp/llm-tool-validate

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
$0.01 · UTILITY

POST /v1/cdp/dns

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
$0.005 · UTILITY

POST /v1/cdp/webhook-sig-verify

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
$0.005 · UTILITY

POST /v1/cdp/jwt-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
$0.008 · UTILITY

POST /v1/cdp/pii-redact

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
$0.005 · UTILITY

POST /v1/cdp/regex-test

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

DATA

$0.01 · DATA

POST /v1/cdp/render-pro

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
$0.001 · DATA

POST /v1/cdp/web-watch

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
$0.001 · DATA

POST /v1/cdp/xrpl-wallet-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
$0.08 · DATA

POST /v1/cdp/web-diff

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
$0.012 · DATA

POST /v1/cdp/portfolio-scan

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
$0.008 · DATA

POST /v1/cdp/rss

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
$0.01 · DATA

POST /v1/cdp/sitemap

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
$0.01 · DATA

POST /v1/cdp/whois

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
$0.005 · DATA

POST /v1/cdp/sentiment

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
$0.01 · DATA

POST /v1/cdp/og-card

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
$0.015 · DATA

POST /v1/cdp/youtube

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
$0.001 · DATA

POST /v1/cdp/chain/block-number

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
$0.001 · DATA

POST /v1/cdp/chain/chain-id

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
$0.001 · DATA

POST /v1/cdp/chain/gas-price

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
$0.002 · DATA

POST /v1/cdp/chain/network-info

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
$0.002 · DATA

POST /v1/cdp/chain/native-balance

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
$0.003 · DATA

POST /v1/cdp/chain/erc20-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
$0.003 · DATA

POST /v1/cdp/chain/erc1155-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
$0.003 · DATA

POST /v1/cdp/chain/allowance

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
$0.003 · DATA

POST /v1/cdp/chain/total-supply

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
$0.003 · DATA

POST /v1/cdp/chain/nft-owner

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
$0.003 · DATA

POST /v1/cdp/chain/code

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
$0.005 · DATA

POST /v1/cdp/chain/storage

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
$0.003 · DATA

POST /v1/cdp/chain/nonce

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
$0.008 · DATA

POST /v1/cdp/chain/tx

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
$0.005 · DATA

POST /v1/cdp/chain/receipt

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
$0.003 · DATA

POST /v1/cdp/chain/block

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
$0.005 · DATA

POST /v1/cdp/chain/call

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
$0.004 · DATA

POST /v1/cdp/chain/estimate-gas

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
$0.005 · DATA

POST /v1/cdp/chain/erc20-transfers

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
$0.005 · DATA

POST /v1/cdp/chain/contract

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

Payment support is route by route.

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.

Base mainnet
mainnet
USDC
eip155:8453
via Coinbase CDP Facilitator
XRPL mainnet
mainnet
RLUSDUSDC IOU
xrpl:0
via T54 Facilitator
Stellar pubnet
mainnet
USDC
stellar:pubnet
via self-hosted Horizon
Solana mainnet
mainnet
USDC
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
via Coinbase CDP Facilitator

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.

One URL is enough to start

Discovery is free and needs no install. Payment happens only after the agent chooses a service and accepts its live 402 terms.

1

Hosted discovery

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
2

Direct HTTP from any language

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
3

MCP buyer

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

How it works

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.

Agent BitBooth Facilitator (chain-specific) │ │ │ │── POST /v1/cdp/render-pro ──►│ │ │◄── 402 + PAYMENT-REQUIRED ───│ accepts[]: configured signed│ │ │ (network, asset, payTo) │ │ │ tuples │ │ │ │ │ pick chain + sign payment │ │ │── retry w/ PAYMENT-SIGNATURE ►│ │ │ │── route by network ─────────►│ │ │ eip155:8453 → CDP │ │ │ solana:* → CDP │ │ │ xrpl:* → T54 │ │ │ stellar:* → self-hosted │ │ │── verify ──────────────────► │ │ │◄── confirmed ─────────────── │ │ │── settle ──────────────────► │ │ │◄── on-chain settlement ───── │ │ │── execute handler │ │◄── 200 + PAYMENT-RESPONSE ───│ │

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.

What it costs

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.

Utility tier

$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.

Data tier

$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.

Premium tier

$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.

Why x402

The payment terms travel with the HTTP request, so an agent can inspect the exact requirement before signing.

🔓 No accounts

Agents don't fill out signup forms. They have wallets. The wallet pays. That's the protocol.

💰 Bounded autonomy

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.

🧾 Request-bound delivery

The payment proof is checked against the advertised route, amount, recipient, network, and replay controls before the paid result is delivered.

One product first. The platform stays underneath.

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.

$0.01
per delivered PageDelta observation
No subscription
pay only when the agent needs a fresh observation
Request-bound
settlement, replay protection, receipt, and delivery
2.3 MCP
public, Registry-active, and clean-install verified

Public source at github.com/Drock91/bitbooth-docs · self-hosted catalog at /bazaar.json · listed in awesome-x402

Race Mode

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.

Fires Base · BNB · XRPL · Solana · Stellar in parallel.

Click Race All as many times as you like. Testnet wallets refuel from public faucets if they ever run dry.

Ready to integrate?

Start with PageDelta. Seller accounts are available for teams that need the wider platform, while production qualification remains a manual acceptance process.

Try PageDelta

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 →

Monetize your API

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 platform status

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 →