Loading...
Loading...
Your AI agent's crypto brain. One skill, 83+ commands across 14 data domains — real-time prices, wallets, social intelligence, DeFi, on-chain SQL, prediction markets, and more. Natural language in, structured data out. Install once, access everything. Use whenever the user needs crypto data, asks about prices/wallets/tokens/DeFi, wants to investigate on-chain activity, or is building something that consumes crypto data — even if they don't say "surf" explicitly.
npx skill4agent add asksurf-ai/surf-skills surfsurfnpx surf--sort-by--token-addresssurf install # Upgrade to latest version (if surf is already installed)
curl -fsSL https://agent.asksurf.ai/cli/releases/install.sh | sh # First-time install
export SURF_API_KEY=<your-api-key>surf installsurf sync # Refresh API spec cache — always run first
surf list-operations # All available commands with params
surf list-operations | grep <domain> # Filter by domain
surf <command> --help # Full params, enums, defaults, response schemasurf sync--helpsurf market-price --symbol BTC -o json -f body.data
surf wallet-detail --address 0x... -o json -f body.data
surf social-user --handle vitalikbuterin -o json -f body.data-o json-f body.data-f body.data[0]-f body.data -r-f body.meta| Need | Grep for |
|---|---|
| Prices, market cap, rankings, fear & greed | |
| Futures, options, liquidations | |
| Technical indicators (RSI, MACD, Bollinger) | |
| On-chain indicators (NUPL, SOPR) | |
| Wallet portfolio, balances, transfers | |
| DeFi positions (Aave, Compound, etc.) | |
| Twitter/X profiles, posts, followers | |
| Mindshare, sentiment, smart followers | |
| Token holders, DEX trades, unlocks | |
| Project info, DeFi TVL, protocol metrics | |
| Order books, candlesticks, funding rates | |
| VC funds, portfolios, rankings | |
| Transaction lookup, gas prices, SQL | |
| Kalshi binary markets | |
| Polymarket prediction markets | |
| Cross-platform prediction metrics | |
| News feed and articles | |
| Cross-domain entity search | |
| Fetch/parse any URL | |
--help--sort-by--from--token-address--sort_by--time-range--from--tosurf <cmd> --help--indicator rsiRSI--help-q-q--q--qethethereumsolsolanamaticpolygonavaxavalanchearbarbitrumopoptimismftmfantombnbbsconchain-sqlonchain-structured-queryecho '{"sql":"SELECT ..."}' | surf onchain-sql--rsh-*--helponchain-sqlsurf catalog search "dex trades" # Find relevant tables
surf catalog show ethereum_dex_trades # Full schema, partition key, tips, sample SQL
surf catalog practices # ClickHouse query rules + entity linkingagent.agent.ethereum_dex_tradesethereum_dex_tradesSELECTWITHblock_datesurf syncsurf list-operations--sort_by--sort-byexpected value to be one of "rsi, macd, ..."--help--helperror.codesurferror.code | | Scenario | Action |
|---|---|---|---|
| | Bad or missing key | Show no-key message (below) |
| | Free daily credits (30/day) exhausted | Show credit-exhausted message (below) |
| (no "anonymous") | Paid balance is zero | Show top-up message (below) |
| — | RPM exceeded | Briefly inform the user you're retrying, wait a few seconds, then retry once |
UNAUTHORIZEDYou don't have a Surf API key configured. Sign up and top up at https://enterprise-landing.asksurf.ai to get your API key.In the meantime, you can try a few queries on us (30 free credits/day).
SURF_API_KEYINSUFFICIENT_CREDITYou've used all your free credits for today (30/day). Sign up and top up to unlock full access:
- Go to https://enterprise-landing.asksurf.ai
- Create an account and add credits
- Copy your API key from the Dashboard
- Run:
surf auth --api-key <your-key>Let me know once you're set up and I'll pick up where we left off.
INSUFFICIENT_CREDITYour API credits have run out. Top up to continue: → https://enterprise-landing.asksurf.aiLet me know once done and I'll continue.
surf authsurf auth --api-key sk-xxx # Save API key to system keychain
surf auth # Show current auth status
surf auth --clear # Clear saved API keySURF_API_KEYAPI key saved and configured. You're all set.
Base URL: https://api.asksurf.ai/gateway/v1
Auth: Authorization: Bearer $SURF_API_KEYmarket-price → GET /market/price
social-user-posts → GET /social/user-posts
onchain-sql → POST /onchain/sqlmarketwalletsocialtokenprojectfundonchainnewsexchangesearchwebkalshipolymarketprediction-market{ "data": [...items], "meta": { "credits_used": 1, "cached": false } }datametatotallimitoffsetmetahas_morenext_cursor--help| Schema notation | Meaning |
|---|---|
| string |
| integer |
| float |
| boolean |
| required |
| optional |
| constrained values |
| default value |
| range constraint |
--help--cursorhas_morenext_cursor--limit--offsettotalmkdir -p ~/.surf/api-feedback~/.surf/api-feedback/<YYYY-MM-DD>-<slug>.md# <Short title>
**Command tried:** `surf <command> --flags`
**What the user wanted:** <what they were trying to accomplish>
**What happened:** <error message, empty results, or confusing behavior>
## Suggested API fix
<How the API could change to make this work naturally>