Supported Chains
12 active-vault chains with chain IDs, address formats, and finality models.
Philidor tracks vaults across 12 active networks (12 chains). Coverage is namespace-aware rather than EVM-only; see Chain identifiers below.
| Chain | Chain ID | Native Currency | Explorer | Finality Depth |
|---|---|---|---|---|
| Ethereum | 1 | ETH | etherscan.io | 64 blocks (~13 min) |
| Base | 8453 | ETH | basescan.org | 0 (L2, finality via L1) |
| Arbitrum | 42161 | ETH | arbiscan.io | 0 (L2, finality via L1) |
| Polygon | 137 | MATIC | polygonscan.com | 128 blocks (~4 min) |
| Optimism | 10 | ETH | optimistic.etherscan.io | 0 (L2, finality via L1) |
| Avalanche | 43114 | AVAX | snowtrace.io | 1 block (sub-second) |
| Monad | 143 | MON | monadvision.com | 1 block (sub-second) |
| Plume | 98866 | PLUME | explorer.plume.org | 0 (L2, finality via L1) |
| Stable | 988 | USDT0 | stablescan.xyz | 0 (inclusion-based) |
| Plasma | 9745 | XPL | plasmascan.to | 1 block (sub-second) |
| Linea | 59144 | ETH | lineascan.build | 0 (L2, finality via L1) |
| Solana | 1399811149 | SOL | solscan.io | finalized commitment |
The 1399811149 integer is a Philidor-assigned synthetic id (Solana has no EIP-155 chain id). Integrators who want a standards-based key should use the caip2 identifier served by /v1/chains: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.
Chain identifiers and address formats
Every chain carries three identifiers. GET /v1/chains serves them for
every chain with active vaults:
id— the integer used inchain_idfields and path segments. For EVM chains this is the EIP-155 chain id; for non-EVM chains it is a Philidor-assigned synthetic integer (stable, but not a standard).slug— the URL-safe name accepted by?chain=filters and/v1/vault/{network}/{address}paths (ethereum,base,solana). Filters accept the integer id or the slug interchangeably.caip2— the CAIP-2 identifier (eip155:1,solana:…). The standards-based way to key on a chain across namespaces.
Address formats are per-namespace and validation is strict:
- eip155 (EVM):
0x-prefixed hex, 40 hex characters (20 bytes) or 64 for bytes32-keyed rows. Case-insensitive on input; canonical form is lowercase. - solana: base58, 32–44 characters decoding to 32 bytes. Case-sensitive — two addresses differing only in letter case are different accounts, so Philidor never case-folds them and neither should you.
A base58 address on an EVM chain (or a hex address on Solana) is
rejected with 400, never coerced.
Finality Depths
Philidor only reads finalized blocks to prevent data corruption from chain reorganizations:
- Ethereum (64 blocks): 2 epochs post-Merge. Provides economic finality.
- Polygon (128 blocks): Heimdall checkpoint-based finality.
- Avalanche (1 block): Avalanche consensus provides sub-second finality.
- Monad (1 block): High-throughput L1 with sub-second block finality.
- Plasma (1 block): Tether-backed stablecoin L1 (PlasmaBFT), sub-second finality.
- Stable (0 blocks): Immediate inclusion finality in the chain registry.
- L2s (0 blocks): L2 sequencers provide ordering; finality is inherited from L1 batch posting (Base, Arbitrum, Optimism, Plume, Linea).
- Solana (
finalized): Commitment-based finality; published reads use finalized account state rather than an EVM-style block-depth rule.
See Data Integrity for how finality is enforced.
Using Chain Filters
Filter vaults by chain using the chain parameter:
curl "https://api.philidor.io/v1/vaults?chain=ethereum"
curl "https://api.philidor.io/v1/vaults?chain=ethereum,base"
curl "https://api.philidor.io/v1/vaults?chain=solana"