# Transfers by wallet · API reference · Femtos

> ERC-20 transfers sent and received by a wallet, newest first, filterable by token, direction, size and time. GET /v1/transfers on Elysium and HyperEVM: parameters, response fields and a live call per layer.

- Base URL: `https://api.femtos.xyz/v1` (REST) · `wss://api.femtos.xyz/v1/ws` (WebSocket) · MCP: `https://api.femtos.xyz/mcp`
- Auth: `Authorization: Bearer $FEMTOS_KEY`. Free key: https://femtos.xyz/account/new (browser), or with
  no browser: `GET https://femtos.xyz/accounts/agent/challenge`, solve its proof of work, then `POST https://femtos.xyz/accounts/agent/signup`
  (https://femtos.xyz/agents.md#agent-onboarding)
- Decimals are exact strings, times Unix milliseconds, addresses lowercase `0x`
- Whole API in one file: https://femtos.xyz/agents.md · OpenAPI: https://api.femtos.xyz/v1/openapi.json · Index: https://femtos.xyz/llms.txt
- Page with live calls: https://femtos.xyz/reference/wallet-transfers

## Transfers by wallet — GET `/v1/transfers`

ERC-20 transfers sent and received by a wallet, newest first, filterable by token, direction, size and time.

Layers: Elysium, HyperEVM. Not on HyperCore: HyperCore has no ERC-20 Transfer logs: an account’s transfers are on the wallet page and in the hc.ledger stream.
Page with live calls: https://femtos.xyz/reference/wallet-transfers?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | EVM layer |
| `address` | query | `<creator>` (Elysium); `<evmWallet>` (HyperEVM) | Transfers from / to this address (a named wallet's handle works too); token then optional |
| `direction` | query | `any`, `in`, `out` | With address: received, sent or both |
| `token` | query | (optional) | Token address (required without address) |
| `minUsd` | query | (optional) | With address: smallest amount × current token price, USD |
| `limit` | query | `20` | Rows |
| `cursor` | query | (optional) | Next page: `next_cursor` of the previous answer |

Elysium:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/transfers?layer=elysium&address=<creator>&direction=any&limit=20"
```

HyperEVM:

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/transfers?layer=hyperevm&address=<evmWallet>&direction=any&limit=20"
```

| Field | Type | Meaning |
|---|---|---|
| `rows[]` | object | Newest first: {block, t, tx, logIndex, token, symbol, decimals, from, to, direction, amount, amountRaw, …} |
| `usdBasis` | current_price \| null | What usd / minUsd value the transfers at |
| `fromBlock` | int | First block of the window |
| `toBlock` | int | Last block of the window |
| `scanned` | int | Index rows read for this page (filters apply to them: at most 1000 per source per call) |
| `spamHidden` | int | Rows of spam tokens left out (includeSpam=true shows them) |
| `next_cursor` | string \| null | Opaque cursor of the next page; null when nothing is left in the window. A filtered page can hold fewer rows than limit, even none: keep paging while next_cursor is not null |

Next page: `cursor` = the `next_cursor` of the previous answer (https://femtos.xyz/agents.md#pagination).

## Related (Bridges & wallets)

- [Cross-layer wallet](https://femtos.xyz/reference/wallet.md) `GET /v1/wallet/{address}`: One address (or a named wallet's handle) on HyperCore, HyperEVM and Elysium, plus its latest events. (Elysium, HyperCore, HyperEVM)
- [Wallet stream](https://femtos.xyz/reference/ws/wallet.md) `WS wallet`: Every event of the three layers touching one address. (Elysium, HyperCore, HyperEVM)
- [Swaps by wallet](https://femtos.xyz/reference/wallet-trades.md) `GET /v1/trades`: Every swap a wallet sent (or a pool’s, a token’s), newest first, filterable by token, side, size and time. (Elysium, HyperEVM)
- [Ledger stream](https://femtos.xyz/reference/ws/ledger.md) `WS hc.ledger`: Deposits, withdrawals, transfers and other non-trade balance moves. (HyperCore)
- [Bridge movements](https://femtos.xyz/reference/bridge.md) `GET /v1/bridges`: Matched HyperCore ↔ HyperEVM transfers with 24 h stats. (Elysium, HyperCore, HyperEVM)
- [Bridge stream](https://femtos.xyz/reference/ws/bridge.md) `WS elysium.bridge · bridge.transfers`: Each HyperCore ↔ HyperEVM transfer, initiated then completed. (Elysium, HyperCore, HyperEVM)
- [Bridge coverage](https://femtos.xyz/reference/bridge-coverage.md) `GET /v1/bridges/coverage`: Every HyperCore ↔ HyperEVM leg since our data starts, paired with its other leg: matched share per direction and token, why the others are not, latency. (HyperCore, HyperEVM)

Every page: https://femtos.xyz/reference.md
