Claude
Skills
Sign in
Back

debank

Included with Lifetime
$97 forever

Multi-chain wallet portfolios: token balances, tx history, DeFi positions, NFTs. Use when inspecting any EVM address (e.g. show vitalik.eth balances, decode this tx, what DeFi protocols does 0x... use).

Web3

What this skill does


## Script Usage

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

```bash
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
| Function | Description |
|---|---|
| `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)
| Function | Description |
|---|---|
| `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)
| Function | Description |
|---|---|
| `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
| Function | Description |
|---|---|
| `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
| Function | Description |
|---|---|
| `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)
Files: 12
Size: 92.7 KB
Complexity: 52/100
Category: Web3

Related in Web3