Hall Monitor — Onchain meme audit desk on Solana {{ wipe }} {{ modal }}
HM stamp
Hall Monitor
Onchain meme audit desk · Solana
{{ totalReports }} dossiers
{{ sourcesChip }}
RULES 2026.09.1
{{ liveBadge }}
{{ provTitle }}
{{ provLine }}
{{ src.label }}

Mint authority open. LP not locked. Back to class.

Hall Monitor is the audit desk for meme tokens on Solana. Launchpads let a token graduate the bonding curve; we stand at the hallway door and ask for papers before it enters a retail app. We scan program and mint, verify liquidity after graduation, inspect wallet distribution, then issue a dossier with evidence that retail apps embed straight into their flow. No black-box score. No advice. Three verdicts only: pass, fail, no papers — each with transaction signatures and addresses you can re-check yourself.

TÍCH at the hallway checkpoint

Meme narrative · measured

{{ metricsNote }}
{{ m.label }}
{{ m.value }}
{{ m.unit }}
{{ pinned.pinLabel }}
{{ pinned.id }} ${{ pinned.ticker }}
{{ pinned.verdict }}
{{ pinned.mint }}
{{ c.subject }}{{ c.mark }}
{{ pinned.line }}

Four checkpoints. One verdict.

01  PROGRAM — Token-2022 extensions, upgrade authority
02  AUTHORITY — mint / freeze / update authority
03  LIQUIDITY — curve state, LP locked or burned
04  WALLET DISTRIBUTION — top-holder concentration

Verdict = heaviest card. Any red card → FAIL. No red, a yellow while bonding → PENDING. Missing data on any card → NO PAPERS. Four ticks → PASS. There is no composite score; integrators set thresholds per card.

Four ticks clipboard
{{ t.id }} ${{ t.ticker }}
{{ t.verdict }}
{{ t.mint }}
{{ c.mark }}
{{ t.launchpad }} · {{ t.state }}slot {{ t.slot }}
Layer 1

Program & mint scanner

Reads authorities, not promises. Mint authority open. Freeze authority not revoked. Transfer fee adjustable. Program still upgradeable. Metadata still mutable. Every finding is bound to an address and an authority. If we say fail, open an explorer and see why.

Layer 2

Report API & widget

Look up by mint address. Get cards, levels, and evidence as transaction signature plus address. Versioned schema; it will not shift under your feet. No composite score — the display threshold is your decision. An iframe widget if you don't want to build UI.

Layer 3

Onchain attestation

Live today: every report is canonicalised, hashed with SHA-256 and signed with the desk's Ed25519 key, and the verifier re-checks both in your browser. Next: the hash goes to Solana through an append-only registry program — until it is deployed the dossier says NOT DEPLOYED instead of pretending.

Public ledger

Immutable dossier history. Anyone can read it — your compliance team, our competitors.
Results {{ filteredCount }} / {{ totalReports }} · {{ ledgerNote }}
Verdict Launchpad State
Finding
{{ col.label }}{{ col.arrow }}
{{ r.id }} ${{ r.ticker }} {{ r.mint }} {{ r.launchpad }} {{ r.state }} {{ r.pct }}%
{{ c.mark }}
{{ r.mcap }} {{ r.holders }} {{ r.verdict }}
NO PAPERS — no dossier matches these filters. Clear a filter or look up a mint address.
Page / {{ pageCount }}
← Back to ledger
{{ rep.id }} ${{ rep.ticker }} {{ rep.name }}

Risk dossier

MINT {{ rep.mint }}
{{ rep.verdict }}
Launchpad
{{ rep.launchpad }}
Curve state
{{ rep.state }}
To graduation
{{ rep.pct }}%
Snapshot slot
{{ rep.slot }}
Holders
{{ rep.holders }}
Market cap USD
{{ rep.mcap }}
Issued
{{ rep.issued }}
Schema / rules
{{ rep.schema }} / {{ rep.rules }}
{{ c.id }}{{ c.subject }}
{{ c.levelLabel }}

{{ c.finding }}

Evidence
ADDRESS {{ c.address }}
SIGNATURE {{ c.signature }}
SLOT {{ c.slot }}

Attestation

REPORT HASH
{{ att.hash }}
DESK SIGNER
{{ att.signer }}
DESK SIGNATURE
{{ att.signature }}
REGISTRY PROGRAM
{{ att.program }}
REGISTRY TX
{{ att.registrySig }}
WRITTEN AT SLOT {{ att.slot }}
{{ attVerdictText }}

Public reason

See each card; verdict = heaviest card. There is no composite score. Every conclusion here can be publicly refuted with an address and a signature.

TÍCH — pass TÍCH — fail

Show your papers

Paste any Solana mint address. The desk reads the mint account on mainnet, pulls LP and holder data, runs four checkpoints and returns one of three verdicts. Try a mint from the ledger, or any pump.fun address.

expects base58 · 32–44 characters · copied from a Solana explorer
FAIL — This string is not a mint address.
Base58 characters only (no 0, O, I, l), 32 to 44 long.
Paste it again directly from the explorer.
Try:
Scanning
Pending {{ scanMint }}
{{ s.label }}{{ s.mark }}
Live read: PublicNode RPC → Jupiter → RugCheck → DexScreener. Evidence is the latest confirmed transaction on each address.
No dossier on file No papers
{{ scanMint }} — {{ noPapersReason }}
TÍCH — no papers
FAIL — the desk could not finish this audit.
{{ lookupFailText }}
A public RPC or upstream index refused the call. Wait a few seconds and run it again.

Integrate the desk

Organization-scoped API keys. Call quotas by tier. Fiat invoices. No token gating. Pricing and tier limits: not determined.

{{ t.name }}
{{ t.calls }}
{{ t.sla }}
{{ t.price }}

API keys · your organization

Keys are generated with WebCrypto and stored only in this browser. The hosted API is not live yet; the audit counter is real and counts the audits this page has run.
Key Tier Calls / quota
{{ k.key }} {{ k.tier }} {{ k.usage }}
No keys yet — press “Create trial key” above.
Status-change webhook — {{ webhookText }}
planned target: POST https://your-app.example/hm/webhook

GET /v1/report

planned · not live curl -H "X-HM-Key: …" https://api.hallmonitor.example/v1/report?mint={{ apiMint }}
works today load hm-data.js and call HM.audit("{{ apiMint }}") — same engine, same JSON as below, read live from Solana.
{{ apiJson }}

Embed widget

Drop the iframe on your token page or order-confirmation step. It renders the cards and evidence for one mint, nothing else. You log report_id and attestation hash on your side.

<!-- planned · hosted widget not live yet -->
<iframe src="https://widget.hallmonitor.example/m/{{ apiMint }}" width="360" height="420" title="Hall Monitor dossier"></iframe>

<!-- works today · same rules engine, live data -->
<script src="hm-data.js"></script>
<script>HM.audit("{{ apiMint }}").then(r => render(r.report))</script>
${{ widget.ticker }} {{ widget.verdict }}
{{ widget.mint }}
{{ c.subject }}{{ c.levelLabel }}
{{ widget.id }} · slot {{ widget.slot }}HM · attested

On-demand audit

For issuing teams. One-time fee (amount: not determined). You receive a signed dossier to take to distribution channels. {{ launchNote }} — a channel's default is refusal; the dossier is how you leave that default.

{{ f.hint }}
{{ f.errTitle }}
{{ f.errWhy }}
{{ f.errFix }}
Pending {{ queuedText }}
Dossier path diagram
What the desk checks
01 Program — SPL vs Token-2022 extensions, upgrade authority
02 Authority — mint, freeze, update authority
03 Liquidity — curve account while bonding; LP locked or burned after graduation
04 Wallet distribution — top-10 concentration over time

Appeal a verdict

A technical council separate from sales reviews it. The argument turns on one address and one authority, not on feelings. Response deadline exists; the number is not determined.

state the onchain fact: which authority, which signature, which slot
Pending council ticket {{ appealTicket }}
NO PAPERS — Reason is empty.
The council reviews facts, not requests.
Name the authority, signature and slot, then send again.

Dossier under appeal

{{ appealRep.id }} ${{ appealRep.ticker }} {{ appealRep.verdict }}
{{ c.subject }}{{ c.levelLabel }}
{{ c.finding }}
{{ c.signature }}