Skip to content

Detect if a wallet address is part of Relay Protocol infrastructure

License

Notifications You must be signed in to change notification settings

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.
  • 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 an EVM, Solana, or Bitcoin address.
  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.

Project Structure

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

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

No packages published

Contributors 3

  •  
  •  
  •