# Track any wallet on any chain

Holdings, cost basis, and PnL resolved from raw onchain balances, streamed over websockets and pushed by webhooks. One endpoint for wallet apps, portfolio trackers, and tax tools.

- Latency: as little as 10ms from onchain balance change to your app.
- Event types: 20+ pushed on wallet activity, no polling loops.

## Everything a portfolio product needs from one endpoint

The holdings, balances, trades, and PnL your product renders, for any wallet on any chain we cover.

- Positions, resolved for you: every holding with amount, cost basis, and realized PnL, computed from raw onchain balances.
- Balances that move live: websockets stream holder and account updates the moment a tracked wallet changes.
- Every trade behind the balance: full per-wallet trade history, so realized PnL, tax lots, and copy-trade signals add up.
- Portfolio views, ready to render: total balance and per-token PnL across chains, shaped for the screen you're building.

## Any wallet, any chain, one endpoint

The data-layer strengths that make wallet products simple to build and cheap to run.

- One integration, every chain: Solana, Ethereum, Base, BSC, and Polygon behind a single API.
- 10ms, every time: balances and PnL update within 10ms of the onchain event, so your numbers never lag a fill.
- Cost basis from day one: complete backfilled history, so cost basis and realized PnL are right on the first request. No indexer of your own required.
- Webhooks, not polling: first trades from tracked wallets and per-wallet PnL crossings, pushed to your backend the moment they happen.
- Same wallet, same shape: a Solana wallet and an Ethereum wallet return the same schema, so one portfolio view covers both.
- New chains, zero rework: when we add a chain, your existing wallet views pick it up without a schema change.

## Everything around the data, handled

Typed clients, signed delivery, auth for your users, and a team that shows up while you build.

- Typed from the first call: the TypeScript SDK ships typed wallet, position, and trade methods, so responses autocomplete instead of surprise you.
- Auth for your users: authenticate end users straight from your frontend with JWTs from Clerk, Auth0, and more. No proxy server needed.
- Delivery you can verify: webhooks are HMAC-signed and delivered at least once, so wallet alerts arrive and you can prove they're ours.
- Streams priced per message: pay-per-message websockets mean you pay for the wallets your users actually track, not idle connections.
- History at any scale: cursor pagination over millions of records, so full trade and transfer history works for whales too.
- Your second backend team: 24/7 support on calls, Telegram, and Slack, plus custom integrations built like an extension of your team.

## Frequently asked questions

### What can I build with Struct?

Wallet apps, portfolio trackers, tax and accounting tools, copy-trading products. We resolve the balances and PnL, you own the product.

### Which chains and wallets does Struct cover?

Polymarket is self-serve. Wallet data on other chains is an engagement. Contact us and we'll scope the wallets and chains.

### How do I get started?

Wallet data outside Polymarket is custom, not self-serve. Contact us and we'll provision access.

### Where do holdings and PnL come from?

We resolve them from raw onchain balances and full trade history. You get holdings, cost basis, and realized PnL per wallet, not numbers you have to derive yourself.

### Can I get wallet updates without polling?

Yes. Websockets stream holder and account updates plus positions and PnL as they change. Webhooks fire on wallet activity, like a first trade from a tracked wallet or a PnL crossing.

### Do I need to register wallets before querying them?

No. Hit the endpoint with any wallet on any chain we cover and get its holdings and history back, complete and backfilled.

## Learn more

- [Trading apps](https://www.struct.to/solutions/trading-apps)
- [Analytics & research](https://www.struct.to/solutions/analytics)
- [AI agents](https://www.struct.to/solutions/ai-agents)
- [All solutions](https://www.struct.to/solutions)
- [Pricing](https://www.struct.to/pricing)
- [Documentation](https://docs.struct.to)
