Aurelia

Wallet analysis API

GET/wallets/:chain/:address/analysis

A wallet's PnL, win rate, volume, return distribution and PnL timeline over a window, with its labels.

Parameters

NameInTypeDefaultAllowed values
chainpathstringrequiredevm:56 (BSC), solana, evm:8453 (Base), evm:4663 (Robinhood Chain) or evm:1 (Ethereum)
addresspathstringrequiredWallet address (BSC) or account (Solana)
windowquerystring7d1d, 7d, 30d, 90d

Response

FieldTypeMeaning
chain, wallet, labels, indexedSince, windowstring, string, string[], number, stringAs in every wallet answer, its labels, and the window.
realizedPnlUsdnumberPnL of the window's sells, against each position's all-time average buy price.
unrealizedPnlUsd, totalPnlUsdnumberUnrealized PnL now, of every position, traded in the window or not (unknown ones count as 0); and the sum.
boughtUsd, soldUsd, trades, buys, sells, tokensnumberThe window's swaps, and the tokens they traded.
wins, losses, winRatenumber, number, number | nullTokens with realized PnL above and below 0 in the window; winRate is wins / (wins + losses), null without either.
distributionobjectTokens sold in the window by realized return (average sell / average buy − 1): gt500, 200to500, 50to200, 0to50, minus50to0, ltMinus50.
timeline[]arrayt (bucket start, unix ms), realizedPnlUsd, boughtUsd, soldUsd, trades. Hourly for 1d, per UTC day otherwise; ascending, empty buckets left out.
best[], worst[]arrayUp to 3 positions with the largest realized gain and loss in the window.

Example

Captured 2026-09-28 18:03 UTC on a test instance, trimmed to the last 2 buckets.

curl -s -H 'Authorization: Bearer <key>' 'https://app.aurelia.build/api/wallets/evm:56/0x3304e22ddaa22bcdc5fca2269b418046ae7b566a/analysis?window=1d'
{
  "chain": "evm:56",
  "wallet": "0x3304e22ddaa22bcdc5fca2269b418046ae7b566a",
  "labels": [
    "sniper",
    "fresh"
  ],
  "indexedSince": 1790546261920,
  "window": "1d",
  "realizedPnlUsd": 59.5089770354906,
  "unrealizedPnlUsd": 6.776263578034403e-14,
  "totalPnlUsd": 59.50897703549067,
  "boughtUsd": 1608,
  "soldUsd": 60,
  "trades": 24,
  "buys": 14,
  "sells": 10,
  "tokens": 3,
  "wins": 1,
  "losses": 0,
  "winRate": 1,
  "distribution": {
    "gt500": 1,
    "200to500": 0,
    "50to200": 0,
    "0to50": 0,
    "minus50to0": 0,
    "ltMinus50": 0
  },
  "timeline": [
    {
      "t": 1790611200000,
      "realizedPnlUsd": 5.95089770354906,
      "boughtUsd": 0,
      "soldUsd": 6,
      "trades": 1
    },
    {
      "t": 1790618400000,
      "realizedPnlUsd": 0,
      "boughtUsd": 600,
      "soldUsd": 0,
      "trades": 2
    }
  ],
  "best": [
    {
      "token": {
        "address": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
        "symbol": "TAX",
        "name": "Tax Token",
        "decimals": 18
      },
      "quote": false,
      "trades": 22,
      "buys": 12,
      "sells": 10,
      "unpricedTrades": 0,
      "bought": "20118000",
      "sold": "9800",
      "open": "20108200",
      "boughtUsd": 1008,
      "soldUsd": 60,
      "avgBuyPriceUsd": 0.00005010438413361169,
      "avgSellPriceUsd": 0.006122448979591836,
      "priceUsd": 0.006,
      "priceAt": 1790618400000,
      "realizedPnlUsd": 59.5089770354906,
      "unrealizedPnlUsd": null,
      "totalPnlUsd": 59.5089770354906,
      "firstTradeAt": 1790546864920,
      "lastTradeAt": 1790618578665
    }
  ],
  "worst": []
}

Notes

  • Non-quote positions only. Windows are hourly buckets, the newest still filling: 1d is the last 24, 7d the last 168.
  • From the wallet's own rows, never the chain. Cached 5 s. An unknown wallet answers 200 with zeros.

Try it in the interactive docsCreate a free account