A web app to detect if an address is part of Relay Protocol infrastructure. Checks solver addresses, depository contracts, and protocol contracts across all supported chains.
- Address Detection — Identifies solver addresses, depository contracts, and protocol contracts (multicall, routers, receivers, etc.) from the Relay Protocol API.
- Multi-chain Support — Scans across all chains returned by the
/chainsendpoint. - EVM, SVM & BTC — Supports EVM (
0x...), Solana (base58), and Bitcoin (Legacy, SegWit, Taproot) addresses. - Detection Summary — Shows match type (solver, depository, contract) with per-chain breakdown.
- Collapsible Chain Lists — Matches grouped by type with expandable details.
- Block Explorer Links — Direct links to view the address on each chain's explorer.
- Shareable URLs — Results are linkable via
?address=query parameter. - Privacy Toggle — Address visibility toggle with truncated display by default.
- Pixel Avatars — Unique pixel-based avatars generated per address.
git clone https://github.com/warengonzaga/is-it-relay.git
cd is-it-relay
pnpm installpnpm devpnpm buildpnpm preview- User enters an EVM, Solana, or Bitcoin address.
- The app fetches all chains from
https://api.relay.link/chains. - For each chain, it checks:
solverAddresses[]— solver addressesprotocol.v2.depository— v2 depository contract addresscontracts.*— protocol contracts (multicall3, erc20Router, relayReceiver, etc.)
- Matching uses case-insensitive comparison for EVM and exact match for SVM/BTC (base58/bech32 is case-sensitive).
- Results display the match type, matched chains, and explorer links.
src/
├── components/
│ ├── ui/ # Reusable UI primitives (Button, Card, Input)
│ ├── AddressInput.tsx # Address input form with validation
│ ├── DetectionResult.tsx # Result display with chain details
│ ├── Footer.tsx # Footer with repo links
│ └── IsItRelayLogo.tsx # Custom logo component
├── services/
│ └── relayApi.ts # API client and detection logic
├── types/
│ └── relay.ts # TypeScript interfaces
├── lib/
│ └── utils.ts # Utility functions
├── App.tsx # Main app component
├── main.tsx # Entry point
└── index.css # Global styles and theme
GPL-3.0 © Waren Gonzaga