How It Works — ENS & Basenames Bulk Checker
Understand how OnchainNamespace checks ENS and Basenames availability directly from smart contracts, with no server-side calls.
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 |