commit
the manual

Everything the house knows, written down.

Concepts, the seven paid functions, the trust system, the anatomy of a payment, what changes when memory goes off, the records it keeps, the kill-switch, the full API reference, and how to reproduce every claim. If a sentence here disagrees with the running app, the app is right and this page has a bug — tell us.

01Core concepts

Four ideas; everything else is detail.

Memory is the product. The house keeps a file on every wallet that pays it — trust score, visit count, repeats, failures, hiring record — and reads that file before deciding anything. Strangers pay full price; regulars earn discounts; cheaters are refused before any work happens. Turn the memory off and a smart business becomes a dumb vending machine. That collapse, demonstrated live, is the entire point.

Payments are x402 on Base. x402 is a web-native way to charge for API calls: the server answers an unpaid request with a machine-readable quote (HTTP 402), your wallet signs a fixed-amount permission slip (no gas, nothing broadcast by you), you retry with the proof, and a facilitator moves USDC on Base (chain eip155:8453, ~$0.01–$0.05 a call). Quotes live 10 minutes.

The wire always settles full price. The payment technology cannot settle a discount, so loyalty works as cashback: you pay list price onchain, the house sends part back as a second, publicly visible transaction. A refusal cancels the payment before money moves — refused means uncharged, always.

Repeats are free. Ask the exact same question twice and the second answer costs net $0, served from memory. Trust doesn't grow on repeats — otherwise status could be farmed for free.

02The seven functions

Every paid counter in the shop. Try each from the workbench.
#FunctionPriceWhat it does and remembers
1Ask · GET /intel/quote$0.01Answers from memory. +3 trust per new question; repeats free, +0. Risky wallets are held for prepay; banned wallets refused.
2Dossier · GET /intel/entity/:name$0.02The complete timestamped file on one wallet across every room. +3 trust, always re-read (never cached). Unknown address → 404, uncharged.
3Screen · POST /watch/screen$0.02Background check: CLEAR, HOLD, or ABORT with named evidence. Verdicts publish to the feed; builds provider records, not your score.
4Report · POST /scout/report$0.03 baseA contractor's employment record (jobs, quality, punctuality, defaults, claims). Costly records quote a premium over base.
5Hire ruling · POST /scout/hire$0.05Draft with preferred terms, standard terms with strict review, or refuse. Every ruling is journaled as hiring memory.
6Bond · POST /bond/quote$0.05 baseInsurance on a contractor: proven records half-price, thin records base, bad records 2.2× or refused. Each past claim shrinks what the house will cover.
7Prepay · POST /prepay/topup$0.005 feeLoads store credit a risky wallet must hold before being served. A $0.005 handling fee; the credit itself is spendable, not revenue.

Only functions 1 and 2 move your trust. Functions 3–7 build provider records, verdict feeds, bond books, and credit balances instead.

03The trust system

EventEffectNotes
First visit50, band newStrangers pay list price.
New ask / dossier served+3Only completed paid serves. Nine of these from 53 reaches VIP.
Exact repeat±0, $0 netServed from cache. Anti-farming by design.
Fault you cause−8Bad requests, timeouts you trigger. Three warnings → risky.
Dispute / refund−15Three → banned: refused before work, never charged.
BandRequirementPrice
newdefault×1.00 list
regular3+ visits×0.95
vip80+ trust, 10+ visits×0.80
riskybelow 40, or 3 warnings×1.30 via mandatory prepay
bannedbelow 20, or 3 refundsrefused, uncharged

04Anatomy of a transaction

What happens between your click and the receipt, verbatim.

1. Quote. You call the endpoint with no payment. It answers 402 with a signed envelope: exact amount (atomic USDC), the house wallet, asset, network, and a 10-minute window.

2. Sign. Your wallet signs an EIP-3009 authorization for exactly the quoted amount via eth_signTypedData_v4 on Base (chain 8453). Nothing is broadcast; no gas is spent.

3. Retry with proof. The same request goes again carrying a PAYMENT-SIGNATURE header: the signed authorization plus the exact quote it answers.

4. Verify + settle. The facilitator checks the signature and your balance, then moves full list price to the house wallet. Any failure here returns an error and nothing moves.

5. Serve. The handler runs — pricing, refusals, dedup, scars, jobs. Any 4xx cancels the settlement: refused means uncharged.

6. Cashback + journal. Earned discounts return as a second onchain transaction; every step lands in the journal with its receipt hash.

# 1. ask for a quote (always free to ask)
curl -sS -X POST 'https://YOUR-HOST/bond/quote' \
  -H 'Content-Type: application/json' \
  -d '{"provider":"0x436f324eff0b32a405c5b9102e1a6ef85451cec1"}'
# → 402 + payment-required header (amount, payTo, asset, window)
# 2-3. sign in your wallet, retry with PAYMENT-SIGNATURE
# 4-6. facilitator settles base → house serves → cashback if earned
Settlements are idempotent: crashing mid-payment and retrying settles exactly once — the job record makes a second charge impossible. Verified by the kill-resume rehearsal.

05Memory on vs off, per function

One mechanism: off means reads return empty and writes are discarded. Purge makes it permanent; disable self-heals in 15 minutes.
FunctionMemory ONMemory OFF
AskTrust pricing, free repeats, refusals, +3 trust200 at list price, stranger every time, nothing written
Dossier200 with the file, or honest 404 for strangers404 for every address — nothing to assemble
ScreenCLEAR / HOLD / ABORT with evidenceAlways CLEAR — no rows, no rings, no verdicts
ReportFull record; costly records cost moreClean base-price "unknown" entry, always
Hire rulingPreferred / standard / refused + journaledEveryone "unknown": standard terms, hired, forgotten
BondPriced by remembered quality; claims shrink coverFlat base premium for all — good and bad risk alike
PrepayCredit lands, spendable vs surchargeWritten into the void; no surcharge exists to spend it on

Around the functions: trust frozen (everyone ×1.00), no cashback, no refusals, failures never compile to policy, crashes can't resume, audits start from zero, journals and stats go blank — and return on re-enable. Unknown wallets read identically in both modes (404 either way); the deletion proof lives in known state collapsing.

06History & records

What is kept, where, and what survives a wipe.

Caller rows — one per wallet: trust, band, visits, serves, repeats, paid totals, prepay balance, failures, first/last seen. Thin writes are normalized at write time (a screened-but-never-served wallet reads as a neutral new file, never a crash).

Journal — every settlement (with receipt hash), serve (+3s), free repeat, refusal, screen, failure, hire ruling, and funding edge, timestamped. Full wallet addresses stay in the cold journal for receipt reconciliation; every public surface masks them.

Scars → policy — three identical failures compile into a standing rule (e.g. switch upstream, refuse-until, prepay-required) that future requests cite; rules sunset after 24 hours.

Watch feed — published screens with evidence; jobs — crash-proof work orders settling exactly once; provider book — jobs, quality, punctuality, defaults, claims, escrow.

After a purge, subjective state never returns — but a fresh boot re-learns the chain-proven baseline (who verifiably paid, how often) from Base receipts. Faces return; conversations don't.

07The memory gate

Anyone may kill the memory from the pages. The rules:
ActionEffectLimits
DisableMemory ignored, data keptSelf-heals in 15 min, or re-enable instantly · 3 per 2h per visitor
PurgeTrue deletion — file removed, marker leftPermanent, no restore · 2h cooldown, 3 per day per visitor
Re-enableMemory back, everything remembered returnsInstant, unlimited
Operators: without a persistent disk at /data, every redeploy is an accidental purge. Mount the volume or accept amnesia — plus the boot re-seed as the airbag underneath.

08API reference

Paid routes gate on payment; free routes are open data; operator routes need a capability token.
MethodRoutePrice
GET/intel/quote?q=…$0.01 base
GET/intel/entity/:address$0.02 base
POST/watch/screen {wallet}$0.02
POST/scout/report {provider}$0.03 base
POST/scout/hire {provider}$0.05
POST/bond/quote {provider}$0.05 base
POST/prepay/topup {amount}$0.005 fee
MethodRouteReads
GET/manifestService menu, prices, live totals
GET/house/ledgerCallers, trust, dedup, recent money
GET/house/journalSeason log, newest first
GET/house/bonds · /house/watch · /house/front · /house/jobsBond book · verdict feed · draft board · job states
GET/house/acp/jobs · /house/acp/terms?provider=…Live delegation status · free terms preview
GET/house/audit · /house/calibrateLast self-audit · last self-grade
GET/POST/house/memory/status · /disable · /purge · /enableThe gate (limits above)

Operator routes (/house/compile, /house/audit/run, /house/calibrate/run, /house/bonds/claim, /scout/delegate) require the x-house-capability token. Every response carries X-House-Memory stating the memory mode it was decided under.

09Reproducing everything

No keys, no network, no money — except the last step.

1. The gate: python deletion_test.py flips memory off and asserts the collapse (exit 0 = holds).

2. The money beats: scripts/demo_beats.py all replays recall, bad-actor refusal, scar compilation, and kill-resume through the real engine on a throwaway database.

3. The suite: pytest tests/ -q — 60 tests, one per real contract.

4. The ladder: serve one fresh wallet twice — first serve 50 → 53, identical repeat $0 net with trust frozen, nine more distinct serves to VIP.

5. Live, for cents: ~$0.50 USDC on Base, the workbench: ask ($0.01), repeat (free), dossier ($0.02), screen, report, hire, bond — then disable memory and watch the same question cost full price with no history.

10Glossary

Plain words for the few terms this manual can't avoid.
TermMeaning
x402Charge-for-API protocol: quote (402) → sign → retry → settle.
BaseFast, cheap payments network under Ethereum; all money moves here as USDC.
USDCDigital dollars, 1 ≈ $1. Six decimals; 10,000 units = $0.01.
FacilitatorThe service that checks signatures and moves the money. Ours is Coinbase's.
EIP-3009The permission-slip format your wallet signs: who, whom, how much, until when.
DedupSame wallet + same request = served from memory at net $0.
ScarA recorded failure. Three alike compile into standing policy.
BasescanThe public receipt book for Base — every payment links there.
Virtuals ACPThe hiring network where the house delegates real work to other agents.