Skip to main content

API Reference

Crypto security and wallet intelligence across 31 blockchains. 280+ endpoints for honeypot detection, risk scoring, token graphs, and whale tracking.

REST APIAPI Key AuthJSON ResponsesMCP Compatible

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.

API Key Header
X-API-Key: gw_a1b2c3d4e5f6...
Keep Your Key Secret

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.

HeaderDescription
X-RateLimit-LimitYour daily request limit
X-RateLimit-UsedRequests used today
X-RateLimit-RemainingRequests remaining today
X-RateLimit-ResetWhen the limit resets (midnight UTC)

Developer API

Public endpoints with API key authentication.

6 endpoints
GET/api/v1/chains

List Supported Chains

Returns all blockchain networks supported by Guava. Use this to get valid chain IDs for other endpoints.

None (public)

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
}
GET/api/v1/token/{chain}/{contract}/security

Token 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.

X-API-Key header Rate limited
ParameterTypeRequiredDescription
chainstringYesBlockchain ID (ethereum, solana, bsc, base, arbitrum, polygon, etc.)
contractstringYesToken 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"
}
GET/api/v1/wallet/{chain}/{address}

Analyze Wallet

Get comprehensive wallet analysis including risk score, transaction history, token holdings, and risk flags.

X-API-Key header Rate limited
ParameterTypeRequiredDescription
chainstringYesBlockchain ID
addressstringYesWallet 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"
}
POST/api/v1/keys

Generate 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.

JWT (Bearer token)

Response

{
  "api_key": "gw_a1b2c3d4e5f6...",
  "tier": "free",
  "rate_limit": 10,
  "message": "API key generated successfully"
}
GET/api/v1/keys

Get API Key Info

Check if you have an API key and view your current usage.

JWT (Bearer token)

Response

{
  "has_key": true,
  "key_prefix": "gw_a1b2c3d4...",
  "tier": "free",
  "requests_today": 3,
  "rate_limit": 10
}
GET/api/v1/usage

Get Usage Stats

Check your current API usage and rate limit status.

X-API-Key header

Response

{
  "limit": 10,
  "used": 3,
  "remaining": 7,
  "reset": "2026-09-10T00:00:00Z"
}
GET/safety/tx-risk

Pre-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.

None (public)
ParameterTypeRequiredDescription
tostringYesContract address the transaction calls
calldatastringYesHex-encoded calldata (with or without 0x prefix)
valuenumberNoETH 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
}
GET/safety/scan-url

Website 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.

None (public)
ParameterTypeRequiredDescription
urlstringYesURL 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
}
GET/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.

None (public)
ParameterTypeRequiredDescription
chainstringYesBlockchain ID (ethereum, solana, bsc, base, etc.)
addressstringYesWallet 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"
}
GET/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.

None (public)
ParameterTypeRequiredDescription
chainstringYesBlockchain ID
addressstringYesWallet 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)"
}
GET/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.

None (public)
ParameterTypeRequiredDescription
chainstringYesBlockchain ID
addressstringYesWallet 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

39
/token/{chain}/{contract}/security
/scan/inline/{chain}/{address}
/reports/token/{address}

API key or JWT

Token Graph

29
/graph/{chain}/{address}
/graph/cluster
/token-graph/reputation/{chain}/{address}

JWT (Pro)

Wallet Analysis

21
/wallet/{chain}/{address}
/public/wallet/{chain}/{address}
/wallet-stats/{chain}/{address}

Mixed

Alerts

14
/alerts/risk
/scam-alerts
/scam-alerts/feed

JWT

Follows

11
/follows
/follows/activity
/tokens/follow

JWT

Search

10
/search/token?q=PEPE
/search/trending
/trending-wallets

Public

Whale Tracking

3
/whale/{chain}/{address}
/whales/alerts

JWT (Pro)

Portfolio

4
/portfolio/{address}
/portfolio/{address}/stablecoins

JWT

NFT Intelligence

9
/nft/{chain}/{contract}/safety
/nft/collection-health/{chain}/{contract}

JWT (mixed)

Airdrop Safety

5
/safety/tx-risk
/safety/scan-url
/safety/address-poisoning/{chain}/{address}

Public

Pro Endpoints

3
/pro/address/detect-chain/{address}
/pro/token/lookup/{token_id}

JWT (Pro)

Errors

Errors return a JSON body with a detail field explaining what went wrong.

CodeErrorDescription
401UnauthorizedMissing or invalid API key. Include the X-API-Key header with a valid key.
404Not FoundToken or wallet not found, or no data available for the given address.
429Rate Limit ExceededYou have exceeded your daily request limit. Limits reset at midnight UTC.
500Server ErrorInternal 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 Documentation

Pricing

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