A local-first Chrome extension for capturing public attention receipts — a disposable camera for Twitter/X, Substack, and network pages.
People install it, browse public player profiles/pages, and keep receipts of what captured their attention. Later, receipts can be exported, encoded, submitted, and revealed at the September event to see who collected the strongest evidence of memetic influence.
When an opted-in browser views a tracked public surface, the extension records what the browser can see:
- page URL and title
- target player/network
- visible follower/subscriber/post/view/reply/repost/like counts when rendered
- derived attention estimate from visible audience + interactions
- timestamp and capture mode
- coverage caveats: visible DOM only, private analytics missing, hidden replies missing
It is a receipt camera, not a scraper pretending to be God.
@hitchhikerglitch/hitchhikersguidetothefuture.com@DefenderOfBasic/psyop.report@nosilverv/rivalvoices.substack.com@TheVatStack/thevatstack.substack.com
Default mode is local-only. The extension does not report to a server unless the user explicitly enters a report URL in Options. Users may optionally enter a Quai payout address; it is included in exported/reported receipts so first-seen tweet bounties can be paid manually.
Receipts are stored in Chrome local extension storage and can be exported as JSONL from the popup.
- Download or clone this repo.
- Open Chrome/Brave → Extensions → Manage Extensions.
- Enable Developer Mode.
- Click Load unpacked.
- Select the
extension/directory. - Visit tracked X/Substack/site pages.
- Open the extension popup to scan/export receipts.
The MetaSPN inbound endpoint is primarily a data router. It stores receipts and can relay them to downstream endpoints. The legacy compatibility ledger can still queue 1 QUAI for first-seen tweet IDs, but downstream endpoints handle their own rewards and money.
If you want to be paid, add an optional Quai payout address in extension Options before exporting/reporting receipts.
Official live credit endpoint:
https://inbound.metaspn.network/api/sensor
Use the “Use official inbound endpoint” button in extension Options after DNS/TLS is live.
Preferred flow: the extension submits receipts to MetaSPN inbound, then inbound beams accepted data to registered downstream endpoints. Downstream endpoints publish their own policies and handle their own rewards. MetaSPN is data, not the rewards authority.
Each endpoint can publish:
GET /api/sensor/ping— online/readiness checkGET /api/sensor/policy.json— accepted schema versions, reward rules, filters, and payment modePOST /api/sensor— receipt intake
Extension endpoint config example:
[
{
"name": "MetaSPN inbound",
"url": "https://inbound.metaspn.network/api/sensor",
"enabled": true,
"rewardHint": "MetaSPN data router; downstreams own rewards",
"filters": {"targetIds": [], "urlPatterns": []}
}
]Filters are routing hints only. Endpoint servers decide credit, dedupe, rewards, and rejection. Inbound also exposes POST /api/sensor/endpoints/register so downstream reward endpoints can register to receive relayed receipt data.
Inbound also exposes a receipt-operator email sequence:
POST https://inbound.metaspn.network/api/email/signup— captures an email, optional operator label, optional Quai wallet, and interest note.GET https://inbound.metaspn.network/api/email/sequence.json— public sequence metadata.GET https://inbound.metaspn.network/api/email/healthz— service and email transport status.
The sequence explains how to use captures, reward capturers, register downstream endpoints, and evaluate mindshare until the September event. Email transport supports Resend (RESEND_API_KEY), SMTP, or sendmail. On the VPS it imports the existing Resend environment from /opt/hitchhikers-guide-chat/.env and runs a background due-message scheduler. If no transport is configured, signups are stored and sequence messages remain queued; the service does not mark them sent.
Export receipts from the popup as metaspn-attention-receipts.jsonl, then encode:
python3 scripts/encode_receipts.py encode metaspn-attention-receipts.jsonl -o september-attention-bundle.jsonThe script prints a COMMITMENT_SHA256. Submit or timestamp that hash first if you want to prove your camera roll existed before reveal.
At the event, reveal by submitting september-attention-bundle.json. Anyone can verify:
python3 scripts/encode_receipts.py decode september-attention-bundle.json -o revealed-receipts.jsonl
sha256sum revealed-receipts.jsonlA collector endpoint can ingest receipts at:
POST https://guide.metaspn.network/api/sensor
But again: this is opt-in. Set that URL in Options only if you want live scoreboard reporting.
npm testThis validates:
- manifest JSON
- JavaScript syntax
- target/stat parser
- local collector behavior
- X/Twitter DOM changes can break visible stat extraction.
- The extension cannot see private account analytics unless the platform renders them to the operator.
- Hidden replies, expanded threads, deleted/protected posts, and images/screenshots are incomplete unless visible on page.
- A receipt is not a comprehensive corpus. It is a bounded observation made by one browser at one time.