Skip to content

warengonzaga/is-it-relay

Repository files navigation

Is It Relay?

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.

Deploy to GitHub Pages

Features

  • Address Detection — Identifies solver addresses, depository contracts, and protocol contracts (multicall, routers, receivers, etc.) from the Relay Protocol API.
  • Batch Processing — Check multiple addresses at once by pasting comma, newline, or space-separated lists.
  • Multi-chain Support — Scans across all chains returned by the /chains endpoint.
  • 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.

Tech Stack

Getting Started

Prerequisites

Installation

git clone https://github.com/warengonzaga/is-it-relay.git
cd is-it-relay
pnpm install

Development

pnpm dev

Build

pnpm build

Preview

pnpm preview

How It Works

  1. User enters one or multiple EVM, Solana, or Bitcoin addresses (comma, newline, or space-separated).
  2. The app fetches all chains from https://api.relay.link/chains.
  3. For each chain, it checks:
    • solverAddresses[] — solver addresses
    • protocol.v2.depository — v2 depository contract address
    • contracts.* — protocol contracts (multicall3, erc20Router, relayReceiver, etc.)
  4. Matching uses case-insensitive comparison for EVM and exact match for SVM/BTC (base58/bech32 is case-sensitive).
  5. Results display the match type, matched chains, and explorer links.
  6. For batch processing, results are organized by Relay and Non-Relay addresses with summary statistics.

Project Structure

src/
├── components/
│   ├── ui/              # Reusable UI primitives (Button, Card, Input, Textarea)
│   ├── AddressInput.tsx  # Address input form with validation
│   ├── DetectionResult.tsx # Result display with chain details
│   ├── BatchDetectionResult.tsx # Batch results display with summary
│   ├── 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

License

GPL-3.0 © Waren Gonzaga

About

Detect if a wallet address is part of Relay Protocol infrastructure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors