mcpField
Z
zerion-analyze

zerion-analyze

github.com/zeriontechOther6850 installsUpdated 3w ago
Repository

About zerion-analyze

zerion-analyze is a read-only wallet analysis skill for Zerion CLI users. It summarizes portfolios, token and DeFi positions, transaction history, and profit and loss across supported EVM chains and Solana, with watchlists for repeat tracking.

Key features

  1. 01Summarize portfolio and chain breakdown
  2. 02Inspect token and DeFi positions
  3. 03Read parsed transaction history
  4. 04Review realized and unrealized PnL
  5. 05Track addresses with a watchlist

Use cases

  1. 01Review an address's portfolio and holdings
  2. 02Inspect DeFi exposure and loans
  3. 03Check wallet activity across chains
  4. 04Monitor an address over time

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zeriontech/zerion-ai --skill zerion-analyze

After installing, type/zerion-analyzein Claude Code to confirm it loaded.

Details

From the project README

Zerion — Wallet Analysis

Read-only insights into any crypto wallet across 14 EVM chains and Solana. All commands accept 0x... addresses, ENS names (e.g. vitalik.eth), local wallet names, or watched addresses.

Setup

If a zerion command fails with command not found, install once:

npm install -g zerion-cli

Requires Node.js ≥ 20. For auth (API key / x402 / MPP) see the zerion umbrella skill.

When to use

  • "What's in this wallet?" / portfolio value
  • Token holdings, DeFi positions (lending, staking, LP, borrowed)
  • Transaction history (parsed: trade, send, receive, mint, approve…)
  • Profit & loss (realized, unrealized, fees)
  • "What chains is this wallet active on?"
  • Track an address over time (watchlist)

For execution (swap/bridge/send) → zerion-trading. For wallet creation → zerion-wallet.

Full analysis (recommended starting point)

zerion analyze <address|name>
zerion analyze <address|name> --chain <chain>
zerion analyze <address|name> --positions all|simple|defi
zerion analyze <address|name> --limit <n>           # txs to sample (default 10)
zerion analyze <address|name> --x402                # pay-per-call

Fetches portfolio + positions + transactions + PnL in parallel. Returns a summary with portfolio total + chain breakdown + 1-day change, top 10 positions by value, 5 most recent transactions, and PnL totals.

Targeted reads

# Portfolio value + top positions + 1-day change
zerion portfolio <address|name>
zerion portfolio --wallet <name>
zerion portfolio --watch <name>                     # use watched wallet by name

# Token + DeFi positions
zerion positions <address|name>
zerion positions <address|name> --positions all     # default: tokens + DeFi
zerion positions <address|name> --positions simple  # tokens only
zerion positions <address|name> --positions defi    # DeFi protocols only (flat list)
zerion positions <address|name> --defi              # DeFi grouped by protocol (recommended for DeFi analysis)
zerion positions <address|name> --chain <chain>

# Transaction history
zerion history <address|name>
zerion history <address|name> --limit <n>           # default 10
zerion history <address|name> --chain <chain>

# Profit & loss
zerion pnl <address|name>

All accept --x402 (or --mpp) for pay-per-call without an API key.

--defi output shape

zerion positions <addr> --defi returns positions grouped by protocol with loans netted:

{
  "wallet": {...},
  "filter": "defi",
  "summary": { "total_value": 4200, "gross_value": 4500, "protocols": 2, "positions": 4 },
  "protocols": [
    {
      "dapp": "Aave V3",
      "module": "lending",
      "net_value": 3700,
      "gross_value": 4000,
      "groups": [
        { "position_type": "deposit", "value": 4000, "tokens": [...] },
        { "position_type": "loan",    "value": 300,  "tokens": [...] }
      ]
    }
  ]
}

Key behaviors:

  • Loans net against deposits in net_value (so an Aave wallet with $4k USDC supplied and $300 DAI borrowed reports net_value: 3700). Use gross_value for total exposure.
  • LP tokens with the same group_id collapse into one groups[] entry (a Uniswap USDC/WETH pool returns one group with two tokens, not two unrelated rows).
  • position_type ∈ deposit | loan | staked | locked | reward | wallet | investment — tag each row for downstream filtering.
  • Combining --defi with --positions all|simple errors with conflicting_flags.

Token search (find a contract address)

zerion search <query>                               # by name, symbol, or address
zerion search <query> --chain <chain>
zerion search <query> --limit <n>                   # default 10

Watchlist (track addresses you don't own)

Adds an address to a local watchlist so analysis commands can refer to it by name (--watch <name>).

zerion watch <address|ens> --name <label>           # add (e.g. "vitalik.eth" --name vit)
zerion watch list                                   # list all watched
zerion watch remove <name>                          # remove

# Then use the watched name with any analysis command
zerion portfolio --watch vit
zerion analyze --watch vit

Typical workflow

  1. Run zerion analyze <address> for the broad picture.
  2. Drill into specifics if needed:
    • DeFi grouped by protocol: zerion positions <address> --defi (loans netted, LP tokens pooled by group_id)
    • DeFi flat list: zerion positions <address> --positions defi
    • Single chain: zerion positions <address> --chain ethereum (or --chain monad)
    • More transactions: zerion history <address> --limit 25
  3. For repeat monitoring, add to watchlist: zerion watch <addr> --name <label>.

Output

JSON on stdout, structured errors on stderr. See the zerion umbrella skill for the error contract.

Pay-per-call

--x402 (Base / Solana) and --mpp (Tempo) work on every command in this skill. Trading commands do NOT support pay-per-call — always need an API key.

Common errors

CodeCauseFix
missing_api_keyNo ZERION_API_KEY and no --x402/--mppSet the env var or pass the flag
unsupported_chainInvalid --chainzerion chains for valid IDs
unsupported_positions_filterInvalid --positionsUse all, simple, or defi
conflicting_flags--defi combined with --positions all|simplePick one — --defi already implies --positions defi
api_error 429Rate limitedWait, reduce frequency, or switch to --x402
api_error 400Invalid address or ENS resolution failureRetry with the resolved 0x address

Empty positions/history usually means the wallet is inactive or very new — not an error.

Comments

Markdown supported