# NFT transfers · API reference · Femtos

> Transfers of a collection or one token, newest first. While HyperEVM syncs: the last 24 h or 7 d of indexed blocks. GET /v1/nfts/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/nft-transfers

## NFT transfers — GET `/v1/nfts/transfers`

- Elysium: Transfers of a collection or one token, newest first.
- HyperEVM: Transfers of a collection or one token, newest first. While HyperEVM syncs: the last 24 h or 7 d of indexed blocks.

Layers: Elysium, HyperEVM. Not on HyperCore: served on Elysium and HyperEVM only.
Page with live calls: https://femtos.xyz/reference/nft-transfers?layer=<elysium|hyperevm>

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `layer` | query | `elysium` (Elysium); `hyperevm` (HyperEVM) | EVM layer |
| `collection` | query | `<collection>` | Collection contract |
| `tokenId` | query | (optional) | One token |
| `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/nfts/transfers?layer=elysium&collection=<collection>&limit=20"
```

HyperEVM:

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

| Field | Type | Meaning |
|---|---|---|
| `layer` | string | Layer |
| `collection` | string | Collection |
| `tokenId` | string \| null | The token asked; null: the whole collection |
| `scope` | all \| 24h \| 7d | all: the whole history; 24h / 7d: the block window read (the token index is missing) |
| `fromBlock` | int \| null | First block read when scope is a window |
| `rows[]` | object | {block, t, tx, logIndex, batchIndex, collection, standard, kind, tokenId, amount, from, to, …} |
| `next` | string \| null | Deprecated (sunset 31 Jan 2027): use `cursor` / `next_cursor`. |
| `next_cursor` | string \| null | Opaque cursor of the next page: pass it as `cursor`, unchanged. null on the last page |
| `syncing` | true | Present while the layer syncs: data only up to dataUntil |
| `dataUntil` | ms | Indexed head time while the layer syncs |

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

## Related (NFTs)

- [Active NFT collections](https://femtos.xyz/reference/nft-collections.md) `GET /v1/nfts/collections`: Collections with the most transfers over the last 1 h or 24 h. (Elysium, HyperEVM)
- [NFT collection](https://femtos.xyz/reference/nft-collection.md) `GET /v1/nfts/collections/{address}`: Metadata, tokens seen and 24 h activity of one collection. (Elysium, HyperEVM)
- [Collection tokens](https://femtos.xyz/reference/nft-tokens.md) `GET /v1/nfts/tokens`: Tokens of a collection by id, with their owner and metadata URI. (Elysium, HyperEVM)
- [NFTs of a wallet](https://femtos.xyz/reference/nft-owned.md) `GET /v1/nfts/owned`: ERC-721 tokens owned and ERC-1155 balances of one address. (Elysium, HyperEVM)

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