On this page
Wallet Management
The Artery portal at app.artery.questflow.ai is the easiest way to bind wallets, watch PnL, and trigger a one-shot historical backfill when you suspect data is missing. Everything on this page can also be done with the API — the portal is just a thinner waist.
Bind a wallet
Sign in, open Wallets, and paste any address:
- Polymarket: Polygon EOA (
0x…42 hex chars) - Hyperliquid Perp / HIP-4 / DEX: the same EVM address; pick the provider chip that matches the venue you trade on
- Kalshi: not address-based — use API key + email (handled in Settings → Kalshi)
Once bound, Artery starts listening for fills on that address in real time. Existing fills are NOT loaded automatically (avoids a 60s wait on binding) — for that, see Backfill below.
Provider chips
Each wallet card shows a chip per provider it's bound under. The same
Polygon address can show both polymarket and hyperliquid_dex chips
if you trade on both — that's normal. A wallet without any chip
displayed is detached; click Re-bind to attach a provider.
The chip color tells you binding health:
- green — live WS connection is active, fills land in real time
- yellow — bound but the WS path has dropped; the auto-reconnect controller is retrying. Most disconnects clear in < 1 minute and any fills missed during the gap get caught up automatically (see streaming concepts)
- red — bound but the upstream provider is down. Wait for the
provider-side incident to clear (check
/v1/admin/source-health)
Wallet picker (searching across hundreds of bound wallets)
The PnL + Fills views have a wallet picker at the top. It supports:
- Free-text search over wallet address (full or partial hex prefix), nickname, and provider name
- Provider chip filters — click
polymarket/hyperliquidto scope the picker results - Select all / clear all — useful when you want a one-shot cross-wallet snapshot
Search is client-side and instant. The picker preserves your last selection across navigations so refreshing the PnL page keeps your context.
PnL view
The default PnL grouping is per-event. To roll up across all
wallets bound to the same EOA on different Hyperliquid sub-providers
(perp + hip4 + dex), switch the Group by dropdown to provider.
This is identical to the API's /v1/me/pnl?groupBy=provider
(reference).
The PnL number is realized + unrealized for the selected window. For
the time-series view click PnL curve, which corresponds to
/v1/me/pnl/curve.
Platform attributions (builder codes)
Below the wallets table, the Platform attributions section lets you
register the on-chain builder identifiers your order flow uses. Once
registered, the PnL views can be filtered to "trades that came through
my platform" (?platform=mine) and grouped per-builder
(?groupBy=builder) — useful when an org's bound wallets also trade
unrelated flow you don't want counted.
For each row, pick the provider, paste the builder identifier, and optionally label it ("Main app", "MM bot", etc.):
- Hyperliquid — the builder is a 40-char EVM address (the wallet that signs through the HL builder API). One Hyperliquid entry covers all HL trading; you don't pick perp/hip4/dex.
- Polymarket — the builder is a 64-char
bytes32from the V2OrderFilled.builderfield; we don't translate it, paste it verbatim
This is the same surface as
POST /v1/me/platform-attributions.
Internal ops can also register builders on your behalf during onboarding
from the admin tool.
On-demand backfill (Polymarket)
If you just bound a wallet that's been trading for a while, or if you suspect data is missing after a long Artery downtime, hit the Backfill history button on the wallet card.
- Polymarket only. The Hyperliquid wallet families have their own catch-up path that runs automatically on WS reconnect.
- The button calls
POST /v1/me/wallets/{id}/history-backfillwithlookback_days=7by default. For older history, use the API directly (lookback_daysclamps to[1, 30]). - Re-running is safe: writes are deduped server-side on
(provider, tx_hash, log_index).
Where this differs from the API
The portal hides a few API details that aren't useful to humans:
- The
applied.*echo block from/v1/me/pnl— the portal already visually shows which filters are active via the chips - The
pagination.nextCursorfor the wallet list — the portal does infinite-scroll - The fine-grained
hyperliquid_perp/hyperliquid_hip4/hyperliquid_dexrows underbyProvider— collapsed into a single "Hyperliquid" row. Switch to the raw API if you need the sub-provider attribution