Skip to main content

Client-Side Smart Contract Queries

OnchainNamespace performs all availability checks directly from your browser using public Ethereum and Base RPC endpoints. There is no backend server, no API proxy, and no rate limiting.

ENS Name Checking (.eth)

For ENS names on Ethereum mainnet, we query two smart contracts:

BaseRegistrarImplementation

  • Address: 0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85
  • Method: nameExpires(tokenId) — returns the Unix timestamp when a name expires
  • Method: GRACE_PERIOD() — returns the 90-day grace period after expiry

ETHRegistrarController

  • Address: 0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5
  • Method: available(name) — returns true if the name is available to register

Token ID Derivation

Names are identified by their keccak256 hash:

tokenId = BigInt(keccak256(toUtf8Bytes(name)))

Basenames Checking (.base.eth)

For Basenames on Base L2, we query:

BaseRegistrar

  • Address: 0x03c4738ee98ae44591e1a4a4f3cab6641d95dd9a
  • Method: nameExpires(tokenId)

RegistrarController

  • Address: 0x4cCb0BB02FCABA27e82a56646E81d8c5bC4119a5
  • Method: available(name) — returns availability status
  • Grace period: constant 90 days

RPC Endpoints

The checker uses public RPC endpoints with automatic fallback:

Ethereum: eth.llamarpc.com → ethereum.publicnode.com → 1rpc.io/eth

Base: mainnet.base.org → base.llamarpc.com → base.publicnode.com

Availability Status

Status Meaning
Available Name has never been registered, or is past grace period
Taken Registered and not expired
In Grace Period Expired but current owner can still renew
Expiring Soon Expires within 90 days