API ReferenceWallet Intelligence (Layer 2)

Layer 2 — Wallet Intelligence

FIFO cost-basis PnL, multi-dimensional behavior profiling, wallet similarity search, enriched labels (45+ fields), and provenance chain resolution tracing funding origins across curated CEX hot wallets.

Includes all Layer 1 endpoints.

Rate limits: 300 REST req/min, 20 WebSocket connections, 500 tracked wallets, 1,000 similarity queries/day, full PnL history.


WebSocket Streams

events.wallet.{addr}.pnl

Channel: wallet:{addr}:pnl

Real-time realized PnL events, published on every sell.

  • Rich event payload: entry/exit timestamps, signatures, slots, prices, amounts
  • Fee allocation: entry fees (pro-rata) + exit fees
  • PnL in both USD and SOL, percentage gain, position type (Full/DCA)
  • Exit classification: Full/Partial, exit number, remaining cost basis
  • Bot detection flags, DEX info

events.wallet.{addr}.position

Channel: wallet:{addr}:positions

Live position deltas — every open/close/partial-exit as it happens.

  • FIFO cost-basis accounting: buys create entries, sells pop from front of queue
  • Handles partial exits with pro-rata fee allocation
  • Transfer-out detection: inventory consumed without PnL attribution

events.wallet.{addr}.labels

Channel: wallet:{addr}:labels

Enriched wallet label payload with 45+ fields, published on state change.

  • Deduplicated — only publishes on actual state change
  • Rate limited to prevent flooding
  • Fields include: trader_type, performance_level, badges, activity metrics

REST Endpoints

GET /v1/wallet/{addr}/profile

Multi-dimensional behavior vector breakdown with raw and normalized values.

Feature Groups

GroupCovers
Hold timingExit timing patterns and hold duration
Exit disciplineWin rate, exit behavior, DCA patterns
PerformanceReturn metrics, risk-adjusted performance
Velocity & sizingTrading frequency, position sizing, diversification
InfrastructureDEX usage, automation level, tool patterns
ProvenanceFunding origin, account history

Gating

A wallet must meet minimum activity thresholds to have a profile (minimum closed positions, activity span, and trade count).

Parameters

ParameterInTypeRequiredDescription
addrpathstringyesSolana wallet address

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../profile"

Response

{
  "wallet": "7xKXtg...",
  "has_vector": true,
  "trader_type": "DAY_TRADER",
  "performance_level": "PROFITABLE",
  "features": {
    "hold_first_exit_p50": { "raw": 1200.0, "normalized": 0.45 },
    "win_rate": { "raw": 0.63, "normalized": 0.72 },
    "profit_factor": { "raw": 2.1, "normalized": 0.68 },
    "trade_frequency": { "raw": 12.5, "normalized": 0.55 },
    "bot_share": { "raw": 0.05, "normalized": 0.05 },
    "is_cex_funded": { "raw": 1.0, "normalized": 1.0 }
  },
  "trade_badges": ["CONSISTENT_WINNER", "RUNNER_KEEPER"],
  "identity_badges": ["ROOT_CEX"]
}

Features are normalized to a 0-1 scale for comparability. Cache TTL: 60 seconds.


GET /v1/wallet/{addr}/similar

k-NN wallet similarity search powered by Qdrant.

Parameters

ParameterInTypeRequiredDefaultDescription
addrpathstringyesSolana wallet address
limitqueryintegerno20Max results (max 100)
min_tradesqueryintegernoMinimum trade count filter
performance_levelquerystringnoFilter: PROFITABLE, BREAK_EVEN, etc.

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../similar?limit=10&performance_level=PROFITABLE"

Response

{
  "query_wallet": "7xKXtg...",
  "results": [
    {
      "wallet": "4mNqR...",
      "similarity": 0.94,
      "trader_type": "DAY_TRADER",
      "performance_level": "PROFITABLE",
      "total_pnl_usd": 45000.0,
      "win_rate": 0.65,
      "shared_traits": ["high win rate", "runner keeper", "quick exit timing"],
      "key_differences": ["larger position sizing", "more DEX diversity"]
    }
  ],
  "count": 10
}

Returns similar wallets ranked by behavioral similarity. Includes explainability: top shared traits and key differences.


GET /v1/wallet/{addr}/provenance

Funding chain resolution — where did this wallet’s SOL come from?

Parameters

ParameterInTypeRequiredDescription
addrpathstringyesSolana wallet address

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../provenance"

Response

{
  "wallet": "7xKXtg...",
  "root_entity": "Binance",
  "root_source": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
  "hops": 3,
  "direct_funder": "9aBcD...",
  "last_funded_ts": "2026-03-01T08:30:00Z"
}
  • Traces funding chain back to originating CEX or known entity
  • Curated root wallet database covering major exchanges
  • Returns null for root_entity if no known source found

Cache TTL: 300 seconds.


GET /v1/wallet/{addr}/pnl

Historical realized PnL records for a wallet.

Parameters

ParameterInTypeRequiredDefaultConstraints
addrpathstringyes
limitqueryintegerno50Max 200
offsetqueryintegerno0
tokenquerystringnoFilter by token mint
fromqueryintegernoUnix ms start
toqueryintegernoUnix ms end

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../pnl?limit=20&token=EPjFWd..."

Response

{
  "trades": [
    {
      "wallet_address": "7xKXtg...",
      "token_mint": "EPjFWd...",
      "entry_signature": "5vGk...",
      "exit_signature": "3mPq...",
      "entry_timestamp": "2026-03-05 14:30:00",
      "exit_timestamp": "2026-03-05 15:45:00",
      "hold_time_seconds": 4500,
      "entry_price_usd": 0.00234,
      "exit_price_usd": 0.00312,
      "realized_pnl_usd": 78.50,
      "realized_pnl_sol": 0.52,
      "percentage_gain": 33.33,
      "position_type": "FULL_POSITION",
      "exit_type": "FULL",
      "exit_dex": "raydium",
      "entry_dex": "raydium"
    }
  ],
  "limit": 20,
  "offset": 0
}

Full FIFO cost-basis accounting. Includes entry/exit signatures for on-chain verification.


GET /v1/wallet/{addr}/positions

Current open positions with cost basis and unrealized PnL.

Parameters

ParameterInTypeRequiredDefaultDescription
addrpathstringyesSolana wallet address
statusquerystringnoallopen, closed, or all

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../positions?status=open"

Response

{
  "positions": [
    {
      "wallet_address": "7xKXtg...",
      "token_mint": "EPjFWd...",
      "entry_signature": "5vGk...",
      "entry_timestamp": 1709654400,
      "entry_price_usd": 0.00234,
      "original_amount": 1000000.0,
      "remaining_amount": 500000.0,
      "price_per_token": 0.00000234,
      "status": "PARTIAL",
      "exit_count": 2,
      "entry_dex": "pumpfun"
    }
  ]
}

FIFO-ordered position entries with entry price, fees, and current value. Aggregated by token mint.


GET /v1/wallet/{addr}/labels

Full enriched label set with 45+ fields.

Parameters

ParameterInTypeRequiredDescription
addrpathstringyesSolana wallet address

Example

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../labels"

Response

{
  "wallet": "7xKXtg...",
  "trader_type": "DAY_TRADER",
  "performance_level": "PROFITABLE",
  "size_class": "SHARK",
  "exit_style": "DCA_OUT",
  "automation_label": "ORGANIC",
  "bot_share": 0.05,
  "primary_terminal": "photon",
  "primary_tool": "photon",
  "primary_tool_pct": 0.85,
  "primary_dex": "raydium",
  "primary_dex_pct": 0.72,
  "funded_by_farm": false,
  "root_source": "Binance",
  "provenance_hops": 3,
  "trade_badges": ["CONSISTENT_WINNER", "RUNNER_KEEPER", "STOP_LOSS_USER"],
  "identity_badges": ["ROOT_CEX", "TOOL_PHOTON"],
  "total_trades": 342,
  "win_rate_pct": 63.0,
  "total_pnl": 12450.32,
  "sharpe_ratio": 1.8,
  "profit_factor": 2.1
}

Cache TTL: 60 seconds.


GET /v1/token/{mint}/buyer-quality (Extended)

Same as Free tier but with per-tier volume breakdown, individual wallet details, smart money signal with confidence interval, and configurable lookback window.

See Free Tier → Buyer Quality for base response schema. Layer 2 adds wallet-level detail in the response.