Documentation
What NagBot reads. How to use it, and what it runs on.
NagBot is a read-only research tool for tokens and wallets. This page covers the app, the networks, the state of this deployment right now, and how to run your own.
01
What it is and what it is not
NagBot helps you investigate a token. It reads public chain data, applies written rules to it, and shows each finding with its source, its timestamps and its limits. It never certifies a token as safe, never decides who owns a wallet, and never asks you to connect one.
- Read-only
- No wallet connection, no signature, no seed phrase, no token approval. There is nothing to sign in to.
- Evidence first
- Every finding opens to its evidence: what was asked, of which source, at which slot or block, and what the reading cannot show.
- Honest about gaps
- A section that could not be read says so. Missing data is never shown as zero, and never as “no risks detected”.
- Yours alone
- Watchlists, snapshots, attributed wallets, claims and alert rules live in your browser. There is no account and no server copy.
02
Using the app
- Token Scanner
- Paste a token address. A Solana address opens the full report; a 0x address is looked up on every EVM network NagBot reads and opens the core report on the one where it is a token. The first reading takes a second or two. The early-activity scan is longer and starts when you ask for it.
- Wallet Map
- Drawn from a Solana token’s first transactions: funding sources, early buyers, recipients. Observed links are solid, inferred links are dashed and labeled. Filter by link type or time, select a node or a link to read what it rests on.
- KOL Watch
- A registry you fill in yourself: a wallet a public account disclosed, the source of the attribution, two readings of its holdings and the posts you add by hand. Nothing ships in it.
- Watchlist
- Tokens and addresses you watch, the latest difference between two saved scans of each token, and the controls for exporting, importing and deleting your data.
- Alerts
- Five rule types: a decoded sell by a wallet, a group’s holdings falling below a level, pooled reserves moving, a token control changing, and a new funding connection. Checks run while this app is open.
- Address profile
- Any address in a report opens its profile: what kind of thing it is and how that was decided, its balances, and its recent transactions.
A token report has eleven sections: Overview, Token Controls, Holders, Early Buyers, Wallet Connections, Supply Exits, Deployer History, Liquidity, Claims, Activity and Changes. The section is part of the address, so a link opens the same view.
03
Networks and depth 5 networks
Solana is the network the full investigation was built for. Four EVM networks get the core checks. The depth is the same on every deployment because it is a fact about the code; what changes between deployments is in the next section.
| Section | Solana | Ethereum | BNB Smart Chain | Robinhood Chain | Elysium |
|---|---|---|---|---|---|
| Token controls | Available | Available | Available | Available | Available |
| HoldersOn EVM networks: the largest holders from an indexer, where one exists. | Available | Limited | Not available | Limited | Not available |
| Early buyers | Available | Not available | Not available | Not available | Not available |
| Wallet map | Available | Not available | Not available | Not available | Not available |
| Deployer historyOn EVM networks: the creation record from an indexer. A creator’s other tokens are listed on Solana only. | Available | Limited | Not available | Limited | Not available |
| Supply exits | Available | Not available | Not available | Not available | Not available |
| LiquidityProvider-reported on every network. | Limited | Limited | Limited | Limited | Limited |
| Address profileOn EVM networks: balances from the RPC, token lists from an indexer. | Available | Limited | Limited | Limited | Limited |
| ActivityOn EVM networks: transactions listed by an indexer, not decoded. | Available | Limited | Not available | Limited | Not available |
| Claims | Available | Available | Available | Available | Available |
| Snapshots | Available | Available | Available | Available | Available |
| AlertsOn EVM networks: control, reserve and group-holdings rules. Wallet-sell and new-funding rules read decoded Solana transactions. | Available | Limited | Limited | Limited | Limited |
“Limited” means the section exists but rests on a provider’s figures or covers part of the picture; the section itself says which. “Not available” means the section is not built for that network yet: the report says so and shows nothing in its place.
04
Integration status this deployment, right now
Read from the running server. It shows host names and states only, never a URL or a key. “Limited” is a normal state: it means a key-free source is in use, and it says what a configured one would change.
05
Configuration every value is optional
NagBot runs with no configuration at all, on key-free public sources. Each value below lifts one limit. They are read on the server only: no provider credential is ever sent to the browser, and none is written to a log.
| Variable | What it is for | Without it |
|---|---|---|
| SOLANA_RPC_URL | A Solana mainnet-beta JSON-RPC endpoint from any provider, or your own node. | The key-free public endpoint is used: about one transaction lookup per second, smaller scan windows, and no largest-accounts method. |
| SOLANA_RPC_RPS | Requests per second NagBot may send to SOLANA_RPC_URL. | 8 per second. Ignored for the public endpoint, which is paced to its published limits. |
| HELIUS_API_KEY | Oldest-first transaction history, so a busy token’s first transactions are found without paging back. | History is paged back from the newest transaction within a page budget. A token with more history reports “earliest history not reached”. |
| EVM_RPC_URL_ETHEREUM, _BSC, _ROBINHOOD, _ELYSIUM | Your own endpoint for an EVM network, tried before the public one. | A key-free public endpoint per network. |
| MARKET_DATA | Set to “off” to turn the market data provider off. | On. DexScreener is key-free. |
| JUPITER_API_KEY | Raises the rate limit of the token index cross-check on Solana. | Key-free: one request about every two seconds. |
| TOKEN_INDEX | Set to “off” to turn the token index cross-check off. | On. |
| GITHUB_TOKEN | Raises the rate limit of the repository rule in the claims check. | 60 requests per hour for the whole deployment. |
| NEXT_PUBLIC_SITE_URL | The public origin, used for metadata and share cards. The only value that reaches the browser. | The deployment’s own address, or localhost in development. |
Copy .env.example to .env.local and fill in what you have. With a configured Solana endpoint the early window grows from 60 to 200 transactions, funding is read for 30 buyers instead of 12, and history is paged back 40,000 signatures instead of 12,000.
06
Your data on your device
The watchlist, saved snapshots, attributed wallets, claims and alert rules are stored in this browser’s local storage, validated every time they are read, and never sent to the server. Clearing the site’s data removes them.
- Export
- The Watchlist page writes everything to one JSON file. Keep it private: it holds your labels and notes.
- Import
- A file is checked entry by entry against the same rules as local data. You choose to merge it or to replace what is here. A file from someone else carries their labels and claims, not verified facts.
- Delete
- One control on the Watchlist page removes everything NagBot stored in this browser.
- Bounds
- Up to 100 tokens, 200 addresses, 20 snapshots per token, 200 attributed wallets, 40 alert rules and 200 alert events.
- What the server sees
- The addresses you scan, as any website sees the pages you open. It keeps no list of them and has no place to store one.
07
Known limits
- Bundles
- No bundle provider is integrated. A visible Jito tip is reported; bundle membership is never stated.
- Social posts
- No social data provider is integrated. Posts are added by hand and labeled as manually supplied.
- Alert delivery
- In the app only. No email, Telegram or webhook delivery is built, and nothing is checked after the tab closes.
- Busy tokens
- Without oldest-first history, a token with more transactions than the page budget reports “earliest history not reached”, and early buyers are not listed.
- Large holder sets
- On the public Solana endpoint a full census works for tokens with a moderate number of holders. Larger ones report “unavailable” rather than a partial count.
- EVM depth
- Core checks only. Holders and creation need an indexer and are unavailable where no key-free one exists.
- Request limits
- Per visitor: 90 reads and 6 decoding scans a minute. Provider quotas remain the real bound.
A limit is shown where it applies.
Each of these appears in the report section it affects, as a coverage label and a line under “What this cannot show”. Nothing is filled in to make a report look complete.
08
Run it yourself
NagBot is a Next.js application. It needs Node.js 22.12 or newer and pnpm.
pnpm install
pnpm dev # http://localhost:28900Checks and a production build:
pnpm check # types, lint, tests
pnpm build
pnpm start # http://localhost:28910The same pipeline runs from the command line, which is the quickest way to see what an endpoint can serve:
pnpm scan <mint> [--early] [--wallet] [--json]
pnpm scan:evm <ethereum|bsc|robinhood|elysium> <address>The app holds no database and no secrets of its users, so it can run on one Node server or on a serverless host. The per-visitor request limit is kept in process memory: on a serverless host each instance counts separately, so treat it as a courtesy limit.