CryptoMeter docs
v1.0.0
Get help
● Admin · Configuration

Settings
every field and default.

The five Settings tabs with each field, what it does and its default, plus the optional wp-config.php constants. CryptoMeter has no .env file.

01General

CryptoMeter → Settings has five tabs. Each card saves on its own with Save changes. The key names in code font next to each field are the internal names in the settings export file (option cryptometer_settings).

Settings General tab with the Protection toggle, referral counting toggle and log retention
Settings → General (test install).
FieldWhat it doesDefault
Apply bot policies and log AI traffic enabledMaster switch ("CryptoMeter on this site"). When off, every request passes through untouched, nothing is logged, and the admin header shows Paused. Note: the robots.txt lines, signal headers, /license.xml and /tdmrep.json are also only published while this is on. /llms.txt is not affected.On
Count visitors from AI assistants referral_trackingThe referral beacon (see Referrals).On
Keep logs for … days log_retention_daysBot log rows older than this are deleted daily. The small daily counters (traffic and referrals) keep at least 365 days. Payment records are always kept. 7-3650.90

02Access rules

Settings Access rules tab with always allowed IPs and user agents, never restricted paths and categories, limits and messages
Settings → Access rules (test install with Monetize on, so the Monetize-only fields are visible).

The screen describes these as "Exceptions that apply before any bot policy." In practice a Block policy still wins (an allowlisted IP using a blocked bot's user agent is still blocked); the rules make reads free for bots that would otherwise be charged.

FieldWhat it doesDefault
IP addresses and ranges allow_ipsOne IP or CIDR per line (IPv4 and IPv6). Invalid lines are dropped on save.empty
User agents allow_uasUser-agent fragments, one per line. User agents can be faked; prefer IP rules for anything valuable.empty
URL paths exclude_pathsOne path per line, * as wildcard (for example /press/*).empty
Categories exclude_categoriesPosts in these categories are free for AI.none
Posts under … words min_wordsShort posts are free. 0 = off.0
Payment requests per IP per minute rate_limitHTTP 429 with Retry-After: 60 above the limit. This per-IP limit only counts unpaid requests from bots set to Charge (Monetize on and set up). Allowed bots are not counted by it. To slow down any bot, use the per-bot rate limits. 0 = off.60
Free reads per bot per day bot_daily_free (Monetize)Metered articles each bot may read free per UTC day before charging. 0 = off.0
Blocked bots (HTTP 403) block_messagePlain-text body for blocked bots. Empty = "Automated AI access to this content is not permitted by the publisher."empty
Payment required (HTTP 402) challenge_message (Monetize)Message in the 402 body. Placeholders {price} {networks} {title} {site} {url}.empty

03Content & discovery

Settings Content and discovery tab with robots.txt and llms.txt toggles, the back doors toggle and the paying-agents options
Settings → Content & discovery (test install with Monetize on).
FieldWhat it doesDefault
Write your bot policy to robots.txt robots_syncAdds User-agent: … / Disallow: / for every AI bot whose policy is Block (never for search engines), plus a comment line pointing to /llms.txt. Signal lines are controlled under Signals.On
Publish /llms.txt llms_txtA plain-text overview (llmstxt.org style): site name and tagline, an "AI access and licensing" section, a link to the free JSON catalog and your 30 latest articles (posts set to Blocked are left out). Off = 404.On
Show bots set to Charge only excerpts in RSS feeds and the REST API protect_feedsFor bots set to Charge (Monetize set up): excerpts only in feeds, archives and /wp-json/wp/v2/…. Bots set to Block get HTTP 403 on feeds and on the REST API content routes whether or not this is on.On
What paying agents receive serve_format (Monetize)Automatic (Markdown if the agent sends Accept: text/markdown, JSON for application/json without text/html, otherwise the page), Always clean Markdown, or Always the normal HTML page.Automatic
Teaser in the 402 response teaser_words (Monetize)Words of preview in the 402 body and in excerpts. 0-500.60
Announce articles to x402 Bazaar discovery bazaar (Monetize)Adds the x402 "bazaar" extension to the challenge. Whether a facilitator lists your site is up to it.Off
Service name shown to agents service_name (Monetize)Up to 32 ASCII characters, sent as serviceName.empty
Show "AI access licensed via x402" under posts badge (Monetize)Badge under metered posts (only when payments are set up); or place [cryptometer_badge] anywhere.Off

04Notifications

Settings Notifications tab with recipient, weekly report, spike alert, daily summary, payment e-mail and webhook
Settings → Notifications (test install, example values).
FieldWhat it doesDefault
Send to notify_emailRecipient. Empty = the site admin address.empty
Weekly AI traffic report notify_weeklyOnce a week (WP-Cron): AI bot requests, verified, spoofed, blocked, visitors referred by AI assistants (visible referrer only), the crawl-to-referral ratio and the top 5 companies (bot requests / referrals). Not sent in a week without AI requests or referrals.Off
Alert me when AI traffic spikes spike_alert, spike_factorChecked every hour: an e-mail is sent when the last hour had at least 50 AI requests and more than the factor × the average hour of the previous 7 days. At most one alert per 6 hours. (The on-screen wording talks about a day; the code compares hours.) Factor 2-100.Off, × 5
Daily summary notify_digestYesterday's numbers (UTC): earned, paid reads, AI bot visits, blocked, unpaid demand. Only sent on days with AI activity.Off
E-mail me every time an AI agent pays notify_each (Monetize)One e-mail per settled payment.Off
Webhook URL webhook_urlAn https:// URL that receives a JSON POST after every settled payment (Monetize). See Webhooks.empty
Signing secret (optional) webhook_secretAdds X-CryptoMeter-Signature: sha256=…. Masked after saving.empty
Send test event (saved URL)Sends an event of type test and shows "Webhook delivered · HTTP …" or the error.-

E-mails use WordPress's wp_mail(). If you do not receive them, your site may need an SMTP plugin.

05Tools & status

Settings Tools and status tab with system status rows, export and import settings, and erase data options
Settings → Tools & status (test install; the red Facilitator row is because a custom facilitator without a URL was selected for the screenshot).
  • System status: PHP, WordPress, sodium, DOMDocument, Pretty permalinks, Database tables, Daily maintenance (WP-Cron), Wallet address and Facilitator (only with Monetize), Page cache (detected plugins), Cloudflare (only when the request came through Cloudflare). Green = OK, amber = check, red = problem.
  • Export settings → Download JSON. API secrets (CDP secret, bearer token, webhook secret) are never exported.
  • Import settings: choose a .json file and press Import. Only known settings are imported and validated; secrets on this site are kept; the page reloads. A file from another plugin is rejected ("That is not a CryptoMeter settings file.").
  • Erase data: Test-mode payments and test traffic · Bot request log (Activity) · Referral counters · All statistics (log, referrals and daily counters). Press Delete…, tick "I understand this cannot be undone" and press Delete permanently. Live payments are accounting records and cannot be deleted here.

CryptoMeter also adds suggested text to Settings → Privacy → Policy Guide describing the bot log and the referral beacon.

06wp-config.php constants

CryptoMeter has no .env file. Everything is in the admin screens, plus these optional constants (above /* That's all, stop editing! */):

ConstantPurposeWhere to get the value
CRYPTOMETER_CDP_KEY_IDCoinbase CDP API key ID (Monetize). Overrides the stored value.portal.cdp.coinbase.com
CRYPTOMETER_CDP_KEY_SECRETCoinbase CDP key secret (base64 Ed25519 or EC PEM).Shown once when you create the key
CRYPTOMETER_DELETE_LEDGERSet to true before deleting the plugin to also remove the payment ledger and per-post/category prices.Your decision