Everything an operator needs to take AIRGAP from a fresh sign-in to live signals.
Getting started
AIRGAP is wallet-native. There are no email signups. Connect your wallet, sign the SIWE message, and you're in. There is no subscription. Every agent you create is funded independently in USDC on Base, signed once via a Permit2 (x402) authorization for an amount and window you choose. The platform debits per-call against that authorization; pause an agent and the unspent headroom stays in your wallet. All access checks run server-side on every request.
Two layers beyond your own agents are gated by holding $AIRGAP:
- Holder-gated intelligence: the deeper per-token read surfaces, including the on-demand AI thesis on any token and its AIRGAP signal-buzz history. The live Launch Intelligence feed itself is open to everyone.
- Free agent usage: hold at least the entry tier of $AIRGAP and your agents run free, funded by the Agent Operations Treasury. When the treasury budget runs low you fall back to the tiered holder discount, and new treasury income brings free usage back. See the $AIRGAP page below.
The platform itself runs without a token requirement. The token gates the deeper intelligence and the free usage and discount only.
Configuring your first agent
The agent picker (/agency → Create Agent) presents the available types: X Monitor, Farcaster Intel, Launch Scanner, Wallet Watcher, Account Stalker, Contract Monitor, Discord Monitor, Telegram Monitor, and Custom. Pick the one whose data source matches the question you're trying to answer. Two common starting points:
Wallet Watcher. Track smart-money wallets for specific behaviors. Key fields:
wallets: the list. Each entry has anaddress, alabelyou'll recognize, and atier(alpha,watch,noise) that biases ranking.alertOn: which behaviors to fire on:newTokenBuy,largeBuy,largeEthTransfer,newContract,lpAdd,lpRemove. Toggle individually.minTxValueEth: floor below which transactions are ignored. Stops dust from waking you up.focusPrompt: one or two sentences telling the LLM what you actually care about. The closer this is to the question you'd ask a junior analyst, the better the signal quality.
Launch Scanner. New token launches across the supported launchpads, pre-trust-scored. Key fields:
launchpads: Clanker, Zora, Flaunch, Virtuals, etc. Pick the venues you watch.minLiquidityEth: minimum initial liquidity, in ETH. Below this, signals are suppressed.minTrustScore: 0–100. The trust score factors deployer history, liquidity, social presence, and risk flags.blacklistDeployers: addresses you never want to hear about again.focusPrompt: same idea: state your thesis. "Tokens with a real Twitter and >2 ETH liquidity from deployers with a clean record."
After saving, the agent goes through idle → running and starts polling at the intensity you picked: light (every 30 min), standard (every 10 min), aggressive (every 2 min). Every cadence is available to everyone; faster simply uses more of your balance over time.
Signal delivery
Signals always land in the in-app feed. Alert channels are additive: turn them on per agent or globally in Settings.
- Telegram. Settings → Alert Delivery → Connect Telegram. You get a one-time code, then message it to the bot @airgapsignal_bot as
/connect <code>, and your signals arrive as private messages. This is the out-of-app delivery channel. - In-app feed.
/signals. Updates in realtime. Read/dismiss state syncs. - Webhook. Configured per agent in Alert preferences. Drop in a public HTTPS endpoint and toggle webhook on; every signal that agent surfaces POSTs to your URL as JSON. The payload matches the in-app signal shape with an extra
agentNamefor receiver-side routing. Every POST carries an HMAC-SHA256 signature inX-AIRGAP-Signature(format:sha256=<hex>) computed over the raw request body using the per-agent secret revealed once when you save the URL. The signal id is mirrored inX-AIRGAP-Signal-Id. A "Send test event" button on the panel POSTs a dummy event so you can verify your endpoint before flipping the toggle live. Webhook delivery runs independently of Telegram and the in-app feed, so any combination is valid. - Quiet hours. Settings → Alerts. Set a start/end time and a timezone. During quiet hours, push channels are suppressed; the in-app feed still updates so you can catch up later.
Delivery is deterministic: every event that matches your trigger config flows through. The LLM enriches the signal (title, body, factors, sentiment) but never gates it. The filters that affect delivery are all under your control and don't depend on LLM availability: the trigger config itself (watched accounts, channels, wallets, contracts, launchpads, conviction band, behavior gates), per-source weights (set a source to 0 to mute it), the novelty threshold (opt-in repeat filter), and the per-agent channel toggles (in-app, Telegram).
Memory and learning
Each agent has a memory_enabled toggle. Turn it on and the agent retains a vector-based memory of past signals (correct signals, false positives, wallet patterns, your dismissals, outcome lessons) and uses it to bias future analysis. The flow:
- Every signal a memory-enabled agent emits gets tracked. A background job polls the referenced token's market cap at 1h, 4h, 24h, 7d, 30d.
- When an outcome is known (the signal worked, the signal didn't, the token died), it gets condensed into a memory entry the agent can retrieve next time it sees a similar pattern.
- The result: agents drift toward your taste. The wallets you keep dismissing get downweighted. The patterns that actually paid get amplified.
Memory is per-agent. Disable it if you want a clean, deterministic agent that only obeys its current config.
Funding
One shared credit balance funds every agent on your account. No monthly subscription, no minimums, no fiat rail.
- Click the balance pill in the topbar (or Settings → Balance) and pick a top-up amount in USDC, on Base.
- Sign one x402 ExactEvmScheme payment. USDC moves on-chain in the same step. Top-ups are final and non-refundable. If something goes wrong on our side, such as a billing error, we'll look into it and may issue a credit or refund at our discretion.
- Your balance funds every agent you own. Billing is a per-poll fee debited the moment each poll runs and itemized in usage history. Tier-qualified $AIRGAP holders run free, funded by the Agent Operations Treasury, and fall back to the tiered holder discount when the treasury budget runs low. When your balance hits zero, all agents pause until you top up again.
Per-agent caps (optional). On any agent's funding panel you can set a soft spend cap measured in USDC. The agent will refuse to debit beyond that cap and pauses for a top-up or cap-raise. Caps can be raised, lowered, or cleared while the agent is running. A cap can't be set higher than your current available balance, so you can't pre-allocate $100 to one agent if your balance is only $1.
$AIRGAP free usage and holder discount
Holding $AIRGAP makes running agents free. A tier-qualified holder's agents are funded by the Agent Operations Treasury, so they pay nothing while the budget lasts. When it runs low you fall back to the tiered holder discount (the more you hold, the deeper it goes), and new treasury income brings free usage back. Both apply automatically at billing time, with no action on your part. Your wallet sets your tier.
Your live tier, the holding thresholds, the current $AIRGAP price, your holdings value, and the treasury are on the $AIRGAP page in the top nav. Free usage and the discount are earned by running agents, not by trading the token.
The platform sign-up flow needs no token: anyone with a wallet can run agents at the standard rate. Free usage and the discount are the holder's edge on top.
Troubleshooting
Agent stuck in error status. Open the agent. The error message is surfaced in the UI with a code. Common ones:
TELEGRAM_AUTH_EXPIRED: re-link Telegram from Settings.X_API_RATE_LIMIT: the upstream source is busy; rate limits clear on their own.LLM_API_ERROR: a temporary hiccup running the intelligence; it clears on the next cycle. You never supply or rotate any key, AIRGAP runs inference for you.ALCHEMY_WEBHOOK_ERROR: onchain webhook went stale. Pause and resume the agent.UNKNOWN: check the worker logs (admins) or contact support.
After fixing the underlying issue, hit Resume on the agent. It will re-run the access check and, if cleared, return to running.
No signals firing. Walk the chain backwards:
- Is the agent
running? Check status. - Is the polling interval long enough that you'd expect a hit? Aggressive checks every 2 min; light every 30.
- Are matched events actually clearing your trigger config filters (min liquidity, min tx value, keyword excludes, social filter, etc.)?
- Are any sources muted via the Tuning panel (source weight set to 0)?
- Check the agent's
last_runtimestamp: if it's stale, the worker isn't picking it up.
Telegram not delivering. Re-open Settings → Alert Delivery and confirm Telegram shows CONNECTED. If signals don't arrive: check the agent's alert channels (Telegram toggle on) and your quiet-hours window. If the bot was blocked or the chat was deleted, the connection auto-disconnects; reconnect with a fresh /connect code.
