mcpField
D
debank

debank

github.com/starchild-ai-agentData & databases30126 installsUpdated 6d ago
Repository

About debank

A script-mode skill for querying DeBank blockchain data, aimed at portfolio and DeFi analysis. Its functions cover wallet holdings across chains as well as token, protocol, and transaction information.

Key features

  1. 01Cross-chain wallet balances and holdings
  2. 02Token, NFT, and DeFi position data
  3. 03Transaction history and net-worth curves
  4. 04Token prices, holders, and chain details
  5. 05Transaction simulation and explanation
  6. 06Token and NFT approval lookup

Use cases

  1. 01Review a wallet portfolio across chains
  2. 02Inspect a wallet’s DeFi positions and NFTs
  3. 03Check token prices and transaction history
  4. 04Simulate and explain a transaction before submission

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill debank

After installing, type/debankin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

__init__.py
debank.py
exports.py
tools/
__init__.py
chain.py
protocol.py
token.py
user.py
utils.py
wallet.py

Details

From the project README

Script Usage

Script-mode skill — read this file, then invoke from a bash block:

python3 - <<'EOF'
import sys, json
sys.path.insert(0, "/data/workspace/skills/debank")
from exports import db_chain_list, db_user_total_balance, db_user_all_token_list

print(db_chain_list()[:3])
print(db_user_total_balance(user_addr="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"))
EOF

Read exports.py for the full list of db_* functions and exact signatures. Common ones: db_chain_list, db_chain, db_token, db_user_total_balance, db_user_all_token_list, db_user_all_simple_protocol_list, db_user_all_complex_protocol_list, db_user_history_list, db_protocol, db_pre_exec_tx, db_explain_tx.

DeBank

DeBank provides comprehensive blockchain data including wallet portfolios, token balances, transaction history, DeFi protocol positions, NFTs, and transaction simulation.

Function Reference (signatures)

All functions are in exports.py. chain_id uses DeBank's lowercase codes: eth, bsc, arb, op, base, matic, avax, sol, era, scrl, linea, mnt, blast, etc. — use db_chain_list() to enumerate. user_addr is the wallet address (lowercase). protocol_id from db_protocol_list().

Chain & Token reference
FunctionDescription
db_chain_list()List all supported chains.
db_chain(chain_id)One chain's metadata.
db_gas_market(chain_id)Gas prices for a chain.
db_token(chain_id, token_id)Token detail. token_id = contract address (or eth, bnb for native).
db_token_list_by_ids(chain_id, token_ids)Batch token lookup.
db_token_history_price(chain_id, token_id, start_time, end_time=None)Historical prices (unix timestamps).
db_token_top_holders(chain_id, token_id, start=0)Top holders.
User portfolio (single-chain)
FunctionDescription
db_user_chain_balance(user_addr, chain_id)USD value on one chain.
db_user_token_list(user_addr, chain_id, is_all=None)Tokens on one chain.
db_user_token(user_addr, chain_id, token_id)One token balance.
db_user_simple_protocol_list(user_addr, chain_id)DeFi positions (light) on one chain.
db_user_complex_protocol_list(user_addr, chain_id)DeFi positions (detailed) on one chain.
db_user_nft_list(user_addr, chain_id, is_all=None)NFTs on one chain.
db_user_history_list(user_addr, chain_id, start_time=None, page_count=None)Tx history on one chain.
db_user_chain_net_curve(user_addr, chain_id)Net worth curve on one chain.
db_user_token_authorized_list(user_addr, chain_id)Token approvals (security audit).
db_user_nft_authorized_list(user_addr, chain_id)NFT approvals.
User portfolio (all-chain — heavier calls)
FunctionDescription
db_user_total_balance(user_addr)Total USD across all chains + breakdown.
db_user_total_net_curve(user_addr)Net worth curve across all chains.
db_user_used_chain_list(user_addr)Which chains the address has used.
db_user_all_token_list(user_addr, is_all=None)All tokens across all chains.
db_user_all_simple_protocol_list(user_addr)All DeFi positions (light).
db_user_all_complex_protocol_list(user_addr)All DeFi positions (detailed).
db_user_all_nft_list(user_addr, is_all=None)All NFTs.
db_user_all_history_list(user_addr, start_time=None, page_count=None)All tx history.
db_user_complex_app_list(user_addr)All app-level positions (more granular).
Protocol reference
FunctionDescription
db_protocol(protocol_id)Protocol detail.
db_protocol_list(chain_id)Protocols on one chain.
db_protocol_all_list()All protocols across chains.
db_app_protocol_list()App-level protocols (groups).
db_user_protocol(user_addr, protocol_id)User's position in one protocol.
db_pool(protocol_id, chain_id, pool_id)One pool's detail.
Tx simulation
FunctionDescription
db_pre_exec_tx(user_addr, chain_id, tx)Simulate tx before sending. tx = standard tx dict.
db_explain_tx(user_addr, chain_id, tx)Human-readable explanation of a tx.

DeBank uses snake_case (total_usd_value, chain_id, usd_value). USD values are floats. Token amounts are floats (already adjusted for decimals — no need to divide by 10**decimals).

When to Use DeBank

Use DeBank for:

  • User Portfolio - Total balance, token holdings, NFTs across all chains
  • Transaction History - Historical transactions on single or all chains
  • DeFi Positions - Protocol balances and complex portfolio positions
  • Token Data - Token details, prices, and top holders
  • Transaction Simulation - Pre-execute and explain transactions before submission
  • Authorization Tracking - View token and NFT approvals
  • Analytics - 24-hour net worth curves and portfolio tracking

Common Workflows

Get User Portfolio
db_user_total_balance(user_addr="0x...")  # Total balance across all chains
db_user_all_token_list(user_addr="0x...")  # All token holdings
db_user_all_nft_list(user_addr="0x...")  # All NFT collections
Check Token Balances on Specific Chain
db_user_token_list(user_addr="0x...", chain_id="eth")  # Ethereum tokens
db_user_token_list(user_addr="0x...", chain_id="bsc")  # BSC tokens
Get Transaction History
db_user_history_list(user_addr="0x...", chain_id="eth")  # Eth transactions
db_user_all_history_list(user_addr="0x...")  # All chain transactions
Check DeFi Protocol Positions
db_user_simple_protocol_list(user_addr="0x...", chain_id="eth")  # Simple balances
db_user_complex_protocol_list(user_addr="0x...", chain_id="eth")  # Detailed positions
db_user_all_complex_protocol_list(user_addr="0x...")  # All chains
Token Information
db_token(chain_id="eth", token_id="0x...")  # Token details
db_token_history_price(chain_id="eth", token_id="0x...", start_time=1234567890, end_time=1234567990)
db_token_top_holders(chain_id="eth", token_id="0x...")  # Top 100 holders
Transaction Simulation
db_pre_exec_tx(user_addr="0x...", chain_id="eth", tx={...})  # Enhanced pre-execution
db_explain_tx(user_addr="0x...", chain_id="eth", tx={...})  # Explain transaction
Protocol Data
db_protocol(protocol_id="uniswap")  # Protocol details
db_protocol_list(chain_id="eth")  # All protocols on chain
db_protocol_all_list()  # All protocols across chains
Chain Information
db_chain_list()  # All supported chains
db_chain(chain_id="eth")  # Specific chain details
db_gas_market(chain_id="eth")  # Gas prices

Important Notes

  • API Key: Requires DEBANK_API_KEY environment variable (DeBank Cloud API)
  • User Address: Most endpoints require a valid blockchain address (0x... format)
  • Chain IDs: Use DeBank chain identifiers (eth, bsc, polygon, arbitrum, optimism, etc.)
  • Rate Limits: Be mindful of API rate limits and unit costs
  • Unit Costs: Different endpoints have different unit costs (see API documentation)

Chain ID Reference

Common chain identifiers:

  • eth → Ethereum Mainnet
  • bsc → BNB Smart Chain
  • polygon → Polygon
  • arbitrum → Arbitrum One
  • optimism → Optimism
  • avax → Avalanche C-Chain
  • ftm → Fantom
  • op → Optimism
  • base → Base

Important: Use db_chain_list() to get the complete list of supported chains and their identifiers.

Address Format

All user addresses should be in Ethereum format (0x followed by 40 hexadecimal characters):

  • Valid: 0x1234567890abcdef1234567890abcdef12345678
  • Invalid: 1234567890abcdef1234567890abcdef12345678 (missing 0x prefix)

Comments

Markdown supported