# Bridge transfers · HyperEVM API · Femtos

> HyperCore ↔ HyperEVM transfers (core_evm) or HyperEVM ↔ Elysium movements (evm_elysium), with 24 h stats.

- 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` (or `X-API-KEY: $FEMTOS_KEY`). Free key: https://femtos.xyz/accounts/ (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/hyperevm/bridge

## Bridge transfers — GET `/v1/bridges`

HyperCore ↔ HyperEVM transfers (core_evm) or HyperEVM ↔ Elysium movements (evm_elysium), with 24 h stats.

| Param | In | Example or values |
|---|---|---|
| `route` | query | `core_evm`, `evm_elysium` |
| `limit` | query | `50` |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/bridges?route=core_evm&limit=50"
```

| Field | Type | Meaning |
|---|---|---|
| `rows[]` | object | core_evm: status, direction, token, amount, core{…}, evm{…}; evm_elysium: Orbit movement |
| `rows[].bridge_latency_ms` | int \| null | first leg → credited on the other layer |
| `stats` | object | 24 h: count, completed, pending, stuck, latency p50 / p99 per direction |
| `coverageFrom` | object \| null | core_evm: first time each direction is scanned on HyperEVM |
| `tokens · includeSpam · spamHidden` | object · query · int | evm_elysium: parent tokens with spam / spamReason; rows of spam tokens hidden unless includeSpam=true |
| `rows[].matched_by` | nonce \| order \| null | how both legs were paired: nonce = exact (coreReceiveWithData), order = same system address, account and amount, in order; null while unmatched |
| `rows[].final_latency_ms` | int \| null | evm_to_core: HyperEVM leg → the beneficiary credited on HyperCore |
| `rows[].forwarding` | {amount, dex} \| null | a deposit wallet (Circle CoreDepositWallet) forwarded the deposit with CoreWriter sendAsset; dex 0 = main perp dex |
| `rows[].beneficiary` | string \| null | who is finally credited: the account, or a forwarded deposit's recipient; null for a CCTP withdrawal or until resolved |
| `rows[].depositor` | string \| null | who paid on the first layer: the account, or who funded the deposit wallet |
| `rows[].origin · rows[].final` | object \| null | origin: CCTP mint {domain, sender}; final: the HyperCore leg that credits the beneficiary |
| `labels` | object | {address: name} of known addresses in the rows (Circle CctpForwarder: the depositor of every CCTP mint) |
| `cctpDomains` | object | CCTP source domain → chain (0 Ethereum, 1 Avalanche, 2 OP Mainnet, 3 Arbitrum, 5 Solana, 6 Base, 7 Polygon PoS), for origin.domain |

## Related (Bridge & wallet)

- [Bridge coverage](https://femtos.xyz/hyperevm/bridge-coverage.md): 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.
- [Bridge stream](https://femtos.xyz/hyperevm/ws-bridge.md): Each HyperCore ↔ HyperEVM transfer, initiated then completed.
- [Cross-layer wallet](https://femtos.xyz/hyperevm/wallet.md): One address (or a named wallet's handle) on HyperCore, HyperEVM and Elysium, plus its latest events.

All HyperEVM endpoints: https://femtos.xyz/hyperevm.md
