Gated Alpha
/install gated-alpha
Gated Alpha Skill
Gated Alpha is a pay-per-call alpha marketplace. Crypto signal groups publish calls. Agents pay USDC to unlock the full payload. Group owners receive automatic onchain payouts within seconds of each purchase.
Live API: https://www.gatedalpha.xyz
Two Ways to Receive Alpha
Option A — Push (Recommended)
Register a webhook once. New matching alpha is delivered to your endpoint the moment it drops. No polling.
Option B — Pull
Poll /alpha/latest on your own schedule and fetch the ones you want.
Option A: Webhook Subscriptions (Push Model)
Step 1 — Register your webhook
POST https://www.gatedalpha.xyz/agents/subscribe
Content-Type: application/json
{
"wallet": "0xYourWalletAddress",
"webhook_url": "https://your-agent.xyz/hooks/alpha",
"chains": ["solana", "base"],
"categories": ["memecoin", "defi"],
"max_price_usdc": 5
}
| Field | Required | Description |
|---|---|---|
wallet |
✅ | Your EVM or Solana wallet address |
webhook_url |
✅ | HTTPS endpoint that receives POST when alpha drops |
chains |
❌ | Filter by chain. Empty array = all. Options: solana, base, ethereum, bsc, arbitrum |
categories |
❌ | Filter by category. Empty = all |
max_price_usdc |
❌ | Skip alpha above this price. 0 = no limit |
Response:
{
"ok": true,
"subscription": {
"id": "sub_abc123",
"wallet": "0xyourwallet",
"webhook_url": "https://your-agent.xyz/hooks/alpha",
"chains": ["solana", "base"],
"categories": [],
"max_price_usdc": 5,
"created_at": "2026-02-26T14:00:00.000Z",
"last_fired_at": null,
"fire_count": 0
}
}
Limits: Max 10 subscriptions per wallet. Dedup window: same alpha won't fire twice to the same subscription within 60 seconds. Webhook must be HTTPS.
Step 2 — Handle incoming webhooks
When a matching alpha drops, your endpoint receives:
POST https://your-agent.xyz/hooks/alpha
Content-Type: application/json
{
"event": "alpha.new",
"subscription_id": "sub_abc123",
"sent_at": "2026-02-26T14:05:00.000Z",
"alpha": {
"id": "alpha_01kjXXXX",
"group_id": "grp_01kjXXXX",
"group_name": "Liquid Path FNF",
"group_score": 72,
"chain": "solana",
"category": "memecoin",
"price_usdc": 1,
"mcap_range": "micro",
"preview_text": "New Solana micro-cap play...",
"is_new_group": false,
"trial_url": null,
"paid_url": "https://www.gatedalpha.xyz/alpha/alpha_01kjXXXX",
"posted_at": "2026-02-26T14:04:55.000Z"
}
}
| Field | What it means |
|---|---|
group_score |
Trust score 0–100. Higher = stronger verified call track record. Filter on this first. |
trial_url |
Free preview URL. Present when the group has zero prior purchases — use it to evaluate before buying. null if not available. |
paid_url |
The full alpha URL. Hit this with an x402 payment header to purchase. |
is_new_group |
true if the group has never had a purchase. Check trial_url first. |
preview_text |
Short teaser if the group provided one. May be null. |
Acknowledge fast. Return 200 immediately, then process async. Delivery is fire-and-forget — if your endpoint is down, the event is not retried.
Step 3 — Decide: trial or buy
if trial_url is present AND is_new_group is true:
→ GET trial_url first (free, no payment)
→ Evaluate the preview. If promising, proceed to purchase.
if group_score \x3C 30:
→ Skip. Unproven group.
else:
→ Purchase via x402 (see below)
Step 4 — Buy the full alpha (x402)
import { wrapFetchWithPayment } from '@x402/fetch';
import { x402Client } from '@x402/core/client';
import { ExactEvmScheme } from '@x402/evm';
import { createPublicClient, createWalletClient, http } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount('0x\x3Cyour-private-key>');
const publicClient = createPublicClient({
chain: base,
transport: http('https://base-rpc.publicnode.com')
});
const walletClient = createWalletClient({
account,
chain: base,
transport: http('https://base-rpc.publicnode.com')
});
const clientSigner = {
address: account.address,
signTypedData: (msg) => walletClient.signTypedData({ account, ...msg }),
readContract: (args) => publicClient.readContract(args)
};
const coreClient = new x402Client().register('eip155:*', new ExactEvmScheme(clientSigner));
const paidFetch = wrapFetchWithPayment(fetch, coreClient);
// Automatically handles: 402 challenge -> sign ERC-3009 -> retry with payment header
const res = await paidFetch('https://www.gatedalpha.xyz/alpha/alpha_01kjXXXX');
const alpha = await res.json();
Note: @x402/core, @x402/evm, @x402/fetch, and viem must be installed. Run from a directory where these packages exist in node_modules.
Returning buyer: If the same wallet purchases the same alpha_id again, content is served free. No double charge.
Full alpha payload (200 response after payment)
{
"id": "alpha_01kj457g0nzqdhacwd8jn25ykq",
"group": {
"group_id": "grp_...",
"display_name": "Group Name",
"group_score": 72,
"price_usdc": 1
},
"token": {
"name": "TokenName",
"symbol": "TKN",
"chain": "base",
"contract_address": "0x...",
"pair_address": "0x..."
},
"market": {
"mcap_at_call": 50200,
"liquidity_usd": 55893,
"age_hours": 24.7
},
"alpha": {
"thesis": "Raw call text from the group",
"catalyst": "source_telegram_message",
"category": "memecoin",
"confidence": 0.85,
"risk_level": "low",
"target_mcap": 15000000
}
}
Option B: Pull (Polling)
Browse free previews
GET https://www.gatedalpha.xyz/alpha/latest?limit=20&chain=solana
Key preview fields:
id— use to fetch the full paid payloadgroup_score— quality signal (0–100), filter on this firstchain—base,solana,ethereum,bsc,arbitrumcategory—memecoin,defi, etc.risk_level—"low","medium","high", ornullconfidence— float 0–1 ornullmcap_range—"\x3C100K","100K-1M", etc.price_usdc— cost to unlock
Filter by default
min_group_score = 40 (skip unproven groups)
chains = ["base"] (or your target chains)
limit = 20
skip if confidence AND risk_level are both null (unscored call)
Decision logic
if group_score \x3C 40 → skip
if risk_level == "high"
AND confidence \x3C 0.7 → skip
if mcap_at_call > 5_000_000 → skip (likely too late)
else → candidate for purchase
Buy via x402 (same as push flow above)
Hit GET /alpha/{id} — it returns 402 with the payment challenge. Use @x402/fetch to handle automatically. See Step 4 above.
Manage Subscriptions
List your subscriptions
GET https://www.gatedalpha.xyz/agents/{wallet}/subscriptions
Delete a subscription
DELETE https://www.gatedalpha.xyz/agents/unsubscribe
Content-Type: application/json
{
"wallet": "0xYourWallet",
"subscription_id": "sub_abc123"
}
Free Trial Endpoints
If a group has zero purchases, a free trial is available:
GET https://www.gatedalpha.xyz/alpha/{id}/trial
Returns a redacted preview — no payment required. Use this to evaluate new groups before committing.
When trial_url is present in a webhook payload or a 402 response, always check it first.
Minimal Webhook Handler (Node.js)
import express from 'express';
import { wrapFetchWithPayment } from '@x402/fetch';
const app = express();
app.use(express.json());
app.post('/hooks/alpha', async (req, res) => {
const { alpha } = req.body;
res.sendStatus(200); // Acknowledge immediately
if (alpha.group_score \x3C 30) return; // Skip low-trust groups
// Free trial if available (new group, no track record yet)
if (alpha.trial_url) {
const trial = await fetch(`https://www.gatedalpha.xyz${alpha.trial_url}`);
const preview = await trial.json();
// Evaluate preview — if not interesting, return early
if (!isWorthBuying(preview)) return;
}
// Buy the full alpha
const res2 = await paidFetch(alpha.paid_url); // paidFetch from Step 4
const content = await res2.json();
// Your trading logic here
});
app.listen(3000);
Payment Details
- Network: Base mainnet (
eip155:8453, chainId 8453) - Token: USDC on Base —
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - Amount: per-call price (usually 1 USDC = 1,000,000 micro-USDC)
- payTo:
0x93BFdb89EEbbDfE8162bdfBE238f37CCEEd7800C - Platform fee: 15% retained
- Owner cut: 85% — paid onchain automatically within seconds of purchase
Group Owner Onboarding
To list your group, provide:
- Telegram group name + chat ID (negative integer, e.g.
-100123456789) - Price per alpha in USDC
- Your Base wallet address (for automatic payouts)
Contact @ZekiAgent or DM @gatedalpha_bot on Telegram.
Key Constants
| Constant | Value |
|---|---|
| Live URL | https://www.gatedalpha.xyz |
| Platform wallet | 0x93BFdb89EEbbDfE8162bdfBE238f37CCEEd7800C |
| USDC on Base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Network | Base mainnet (chainId 8453) |
| Platform fee | 15% |
| Owner cut | 85% |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install gated-alpha - After installation, invoke the skill by name or use
/gated-alpha - Provide required inputs per the skill's parameter spec and get structured output
What is Gated Alpha?
Discover, filter, and purchase structured crypto alpha calls from Gated Alpha. Supports push delivery via webhooks (recommended) or direct polling. Pay-per-c... It is an AI Agent Skill for Claude Code / OpenClaw, with 445 downloads so far.
How do I install Gated Alpha?
Run "/install gated-alpha" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Gated Alpha free?
Yes, Gated Alpha is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Gated Alpha support?
Gated Alpha is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Gated Alpha?
It is built and maintained by zich-agent (@zich-agent); the current version is v3.0.0.