vike

Recipe 19 of 32

Daily net-flow history of a wallet

/wallets/{address}/pnl returns one point per active day with that day's net inflow in USD, a running total, gross volume and transfer count; it is net flow, not realized PnL.

GET /v1/onchain/wallets/{address}/pnl?days= returns the wallet's daily series on one chain: for each day with activity, the USD that came in minus the USD that went out (net_flow_usd), the running total from the start of the window (cumulative_net_flow_usd), the gross volume, the transfer count and the number of distinct tokens. The full parameter list is on Wallet net-flow history.

Quick answer

cURL
# vitalik.eth's daily net flow on Ethereum over the last 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/pnl?days=30"

Example response

Captured from the live API on 2026-10-24 at 17:18 UTC, trimmed to the first 3 of 21 points.

Each value is in USD at the price of each transfer when it happened. One outgoing transfer of $2,688.18 on 2026-09-26 sets the month: total_net_flow_usd is the last point's cumulative_net_flow_usd, -2,766.07, so the wallet sent out more value than it received over the window.

Example response
{
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "chain": "ethereum",
  "days": 30,
  "total_net_flow_usd": -2766.07,
  "series": [
    {
      "date": "2026-09-26",
      "net_flow_usd": -2688.18,
      "gross_volume_usd": 2688.18,
      "tx_count": 1,
      "unique_tokens": 1,
      "cumulative_net_flow_usd": -2688.18
    },
    {
      "date": "2026-09-30",
      "net_flow_usd": -3.52,
      "gross_volume_usd": 56.54,
      "tx_count": 5,
      "unique_tokens": 3,
      "cumulative_net_flow_usd": -2691.7
    },
    {
      "date": "2026-10-01",
      "net_flow_usd": 6.28,
      "gross_volume_usd": 6.28,
      "tx_count": 2,
      "unique_tokens": 1,
      "cumulative_net_flow_usd": -2685.42
    }
  ]
}

Variations

A year of history. 365 days is the ceiling; a larger days is clamped to it.

cURL — 365 days
# a year of daily net flow
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/pnl?days=365"

Another chain. The series covers one chain per call.

cURL — Base
# the same wallet's daily net flow on Base
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/pnl?chain=base&days=90"

A chart-ready curve. Keep only the date and the running total.

cURL — cumulative curve
# date and cumulative net flow, one row per active day
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/pnl?days=90" \
  | jq '.series | map({date, cumulative_net_flow_usd})'

The totals per window. The wallet summary gives the same net flow as one figure per window: 24h, 7d, 30d, 90d and all time.

cURL — window totals
# net flow, inflow and outflow per window in one response
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/wallets/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

Before you rely on it

Net flow, not profit

The route's name says PnL, but the figure is net inflow in USD, not realized profit: no cost basis is computed. A swap sends value out and brings value back in, so it nets close to zero whatever the trade made, and a price move on a token the wallet holds never appears. Read the series as the direction and size of the flow.

Only active days are listed

The series has a point only for days with a transfer: days=30 returned 21 points for 31 calendar dates, because the window is today plus the 30 days before. Zero-fill the calendar yourself for a dense chart. tx_count counts token transfers, so one transaction that moves three tokens counts three.

Ask your agent

Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The wallet_pnl_history tool answers it, at 2 credits a call.

Ask your agent
Show the daily net flow of vitalik.eth on Ethereum over the last 30 days
Example response
{  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",  "chain": "ethereum",  "days": 30,  "total_net_flow_usd": -2766.07,  "series": [    {      "date": "2026-09-26",      "net_flow_usd": -2688.18,      "gross_volume_usd": 2688.18,      "tx_count": 1,      "unique_tokens": 1,      "cumulative_net_flow_usd": -2688.18    },    {      "date": "2026-09-30",      "net_flow_usd": -3.52,      "gross_volume_usd": 56.54,      "tx_count": 5,      "unique_tokens": 3,      "cumulative_net_flow_usd": -2691.7    },    {      "date": "2026-10-01",      "net_flow_usd": 6.28,      "gross_volume_usd": 6.28,      "tx_count": 2,      "unique_tokens": 1,      "cumulative_net_flow_usd": -2685.42    }  ]}