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.
- The holder discount: hold $AIRGAP and you pay less to run agents, tiered by how much you hold. See the $AIRGAP page below.
The platform itself runs without a token requirement. The token gates the deeper intelligence and the usage 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). Aggressive is paid-tier only.
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. Holding $AIRGAP discounts the rate, tiered by how much you hold. When the 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 holder discount
Holding $AIRGAP makes running agents cheaper. The discount is tiered: the more you hold, the deeper it goes. It applies automatically at billing time, with no action on your part. Your wallet sets your tier, and your tier sets the rate.
Your live tier, the holding thresholds, the current $AIRGAP price, and your holdings value are on the $AIRGAP page in the top nav. The discount is 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. The discount is 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_INVALID_KEY/X_API_RATE_LIMIT: check your X API credentials in the agent config; rate limits clear on their own.LLM_API_ERROR: your provider key (Settings → AI Keys) is missing, expired, or rate-limited. Rotate it.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.
