API Reference
Crypto security and wallet intelligence across 31 blockchains. 280+ endpoints for honeypot detection, risk scoring, token graphs, and whale tracking.
280+
Total endpoints
22+
Blockchains
99.9%
Uptime target
Quick Start
Make your first API call in under a minute. No signup required for public endpoints.
curl -H "X-API-Key: gw_your_key" \
"https://api.guavaintel.com/api/v1/token/ethereum/0x6982508145454Ce325dDbE47a25d4ec3d2311933/security"Authentication
All authenticated endpoints require an API key in the X-API-Key header. Get your key from the API Access page.
X-API-Key: gw_a1b2c3d4e5f6...Your API key grants access to your account quota. Never commit it to source control or expose it in client-side code. Use environment variables.
Rate Limits
Rate limits are per API key and reset at midnight UTC. Every response includes rate limit headers.
| Header | Description |
|---|---|
| X-RateLimit-Limit | Your daily request limit |
| X-RateLimit-Used | Requests used today |
| X-RateLimit-Remaining | Requests remaining today |
| X-RateLimit-Reset | When the limit resets (midnight UTC) |
Developer API
Public endpoints with API key authentication.
/api/v1/chainsList Supported Chains
Returns all blockchain networks supported by Guava. Use this to get valid chain IDs for other endpoints.
Response
{
"chains": [
{ "id": "ethereum", "name": "Ethereum Mainnet", "type": "evm" },
{ "id": "solana", "name": "Solana", "type": "solana" },
{ "id": "bsc", "name": "BNB Smart Chain", "type": "evm" }
],
"total": 31
}/api/v1/token/{chain}/{contract}/securityToken Security Check
Check if a token is a honeypot or has security risks. Runs 30+ security checks including honeypot simulation, buy/sell tax analysis, contract verification, and owner privilege audit.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain ID (ethereum, solana, bsc, base, arbitrum, polygon, etc.) |
| contract | string | Yes | Token contract address (0x... for EVM, base58 for Solana) |
Response
{
"contract": "0x6982508145454Ce325dDbE47a25d4ec3d2311933",
"chain": "ethereum",
"is_honeypot": false,
"risk_score": 13,
"risk_level": "low",
"security_info": {
"is_open_source": true,
"is_proxy": false,
"is_mintable": false,
"hidden_owner": false,
"transfer_pausable": false,
"buy_tax": 0.0,
"sell_tax": 0.0,
"holder_count": 412000,
"lp_holder_count": 18
},
"analyzed_at": "2026-09-09T22:00:00"
}/api/v1/wallet/{chain}/{address}Analyze Wallet
Get comprehensive wallet analysis including risk score, transaction history, token holdings, and risk flags.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain ID |
| address | string | Yes | Wallet address |
Response
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"chain": "ethereum",
"risk_score": 15,
"risk_level": "low",
"balance": { "eth": 5.2, "usd": 15200 },
"transactions": { "total": 1247, "first_tx": "2021-03-14" },
"tokens": [...],
"flags": [],
"analyzed_at": "2026-09-09T22:00:00"
}/api/v1/keysGenerate API Key
Create a new API key for your account. If you already have a key, this replaces it. Store the key securely, it will not be shown again.
Response
{
"api_key": "gw_a1b2c3d4e5f6...",
"tier": "free",
"rate_limit": 10,
"message": "API key generated successfully"
}/api/v1/keysGet API Key Info
Check if you have an API key and view your current usage.
Response
{
"has_key": true,
"key_prefix": "gw_a1b2c3d4...",
"tier": "free",
"requests_today": 3,
"rate_limit": 10
}/api/v1/usageGet Usage Stats
Check your current API usage and rate limit status.
Response
{
"limit": 10,
"used": 3,
"remaining": 7,
"reset": "2026-09-10T00:00:00Z"
}/safety/tx-riskPre-Signature Transaction Risk Analysis
Analyze a pending transaction BEFORE signing to detect wallet-draining signatures disguised as airdrop claims. Detects unlimited approvals, Permit/Permit2, setApprovalForAll, hidden multicall operations, and known drainer addresses.
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | string | Yes | Contract address the transaction calls |
| calldata | string | Yes | Hex-encoded calldata (with or without 0x prefix) |
| value | number | No | ETH value being sent (default: 0) |
Response
{
"is_safe": false,
"risk_level": "critical",
"risk_score": 95,
"verdict": "🚨 HIGH RISK — DO NOT SIGN",
"to_address": "0x1234...",
"value_eth": 0,
"calldata_analysis": {
"selector": "0x095ea7b3",
"function_name": "approve",
"function_signature": "approve(address,uint256)",
"risk_level": "critical",
"is_unlimited_approval": true,
"is_multicall": false,
"warnings": ["🚨 UNLIMITED APPROVAL detected"]
},
"warnings": ["🚨 UNLIMITED APPROVAL: grants full token control"],
"recommendations": ["DO NOT SIGN — this can drain your wallet"],
"is_known_drainer": false
}/safety/scan-urlWebsite Legitimacy Scanner
Multi-dimensional URL risk scoring for airdrop websites. Detects typosquatting against 70+ crypto brands, homograph attacks, suspicious TLDs, scam keywords, drainer endpoints, and IP-based URLs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | URL to scan for legitimacy |
Response
{
"url": "https://metamsk-claim.xyz/airdrop",
"domain": "metamsk-claim.xyz",
"is_trusted": false,
"overall_risk_score": 72,
"risk_level": "high",
"verdict": "⚠️ HIGH RISK — Multiple suspicious signals",
"dimensions": [
{ "dimension": "typosquatting", "score": 80, "is_suspicious": true, "detail": "Domain closely resembles: metamask" },
{ "dimension": "suspicious_tld", "score": 40, "is_suspicious": true, "detail": "Domain uses suspicious TLD: .xyz" }
],
"detected_issues": ["⚠️ Typosquatting detected", "⚠️ Suspicious TLD"],
"is_known_scam": false
}/safety/address-poisoning/{chain}/{address}Address Poisoning Detection
Scans a wallet's transaction history for address poisoning attacks — dust transfers and zero-value transfers from lookalike addresses designed to trick users into copying the wrong address.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain ID (ethereum, solana, bsc, base, etc.) |
| address | string | Yes | Wallet address to scan |
Response
{
"scanned": true,
"alert_count": 2,
"alerts": [
{
"type": "lookalike_dust",
"severity": "high",
"counterparty_address": "0x1234...5679",
"mimicked_address": "0x1234...5678",
"prefix_match": 38,
"suffix_match": 3,
"amount_usd": 0.001,
"description": "Address poisoning detected: sender mimics your legitimate contact"
}
],
"transactions_analyzed": 200,
"risk_level": "high",
"risk_score_bump": 5,
"summary": "⚠️ 2 suspicious transfer(s) detected"
}/safety/sybil-score/{chain}/{address}Airdrop Farmer / Sybil Score
Calculates a 0-100 farmer score for a wallet based on 9 behavioral features extractable from on-chain data. Detects coordinated multi-wallet farming patterns before an airdrop snapshot. Score: 0 = genuine, 100 = almost certainly a sybil farmer.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain ID |
| address | string | Yes | Wallet address to score |
Response
{
"scanned": true,
"farmer_score": 85,
"risk_level": "critical",
"is_likely_farmer": true,
"features": [
{ "name": "transaction_count", "value": 3, "is_suspicious": true, "detail": "Only 3 transactions — farmers minimize activity" },
{ "name": "wallet_age_days", "value": 5, "is_suspicious": true, "detail": "Wallet is only 5 days old" },
{ "name": "tx_uniformity", "value": 0.95, "is_suspicious": true, "detail": "95% uniform — automated bot" }
],
"cluster_signals": ["Single funding source: 0xfunder..."],
"summary": "🚨 High-confidence airdrop farmer (score 85/100)"
}/safety/spam-tokens/{chain}/{address}Spam Token / Fake Airdrop Detection
Scans a wallet's token holdings for spam/phishing tokens airdropped unsolicited. Detects tokens with phishing URLs in names, bait keywords (claim, reward, free), ticker impersonation (fake USDC/USDT), and dust spam.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chain | string | Yes | Blockchain ID |
| address | string | Yes | Wallet address to scan |
Response
{
"scanned": true,
"alert_count": 2,
"alerts": [
{
"token_symbol": "USDC",
"token_name": "5000 USDC Reward - claim at fake-scam.xyz",
"alert_type": "phishing_url",
"severity": "critical",
"detected_urls": ["fake-scam.xyz"],
"impersonated_symbol": "USDC",
"description": "Token contains phishing URL(s). DO NOT visit."
}
],
"tokens_analyzed": 15,
"clean_tokens": 13,
"risk_level": "critical",
"summary": "🚨 2 spam/phishing token(s) detected"
}Full API Surface
The Developer API is the public subset. The complete platform runs 280+ endpoints.
Token Security
39API key or JWT
Token Graph
29JWT (Pro)
Wallet Analysis
21Mixed
Alerts
14JWT
Follows
11JWT
Search
10Public
Whale Tracking
3JWT (Pro)
Portfolio
4JWT
NFT Intelligence
9JWT (mixed)
Airdrop Safety
5Public
Pro Endpoints
3JWT (Pro)
Errors
Errors return a JSON body with a detail field explaining what went wrong.
| Code | Error | Description |
|---|---|---|
| 401 | Unauthorized | Missing or invalid API key. Include the X-API-Key header with a valid key. |
| 404 | Not Found | Token or wallet not found, or no data available for the given address. |
| 429 | Rate Limit Exceeded | You have exceeded your daily request limit. Limits reset at midnight UTC. |
| 500 | Server Error | Internal error. Check the response body for details, then retry. |
{
"detail": "Rate limit exceeded. Used 10/10 requests today. Resets at midnight UTC."
}MCP Server
Connect AI agents (Claude Desktop, Cursor, Windsurf, Devin) to Guava via Model Context Protocol.
MCP Server DocumentationPricing
Free
$0
10 req/day
- Token security checks
- Wallet analysis
- Chain listing
Pro
Popular$15/mo
2,000 req/day
- Everything in Free
- Priority support
Business
$59/mo
10,000 req/day
- Everything in Pro
- Commercial usage
- Webhook alerts
Enterprise
$299/mo
Unlimited
- Full endpoint access
- SLA guarantee
- Dedicated support