Build with RobinID.
Human-readable input, explicit chain-aware resolution. Names in, addresses out.
Resolve with intention.
- 1. Validate the deployment and the chain id.
- 2. Resolve the canonical name from RPC; never from an indexer alone.
- 3. Reject an unresolved or expired destination.
- 4. Recheck immediately before the payment is signed.
RobinID is an independent namespace. It does not imply ENS, wallet or browser support. Use chain id + registry + node as the identity of a name. Mainnet and testnet are separate deployments.
import { createPublicClient, http } from 'viem';
import { robinUniversalResolverAbi } from './abis';
// Robinhood Chain Testnet · chain 46630
const client = createPublicClient({ transport: http(RPC_URL) });
const [address, , , active] = await client.readContract({
address: UNIVERSAL_RESOLVER,
abi: robinUniversalResolverAbi,
functionName: 'resolve',
args: ['vlad'], // label without .robin
});
if (!active || address === zeroAddress) throw new Error('Unresolved');
// Always recheck from chain before payment.Try a resolution
Reads Robinhood Chain Testnet through its RPC.
Deployment configuration
Configured manifest
No transactions yet.
RobinID · independent project · not endorsed by Robinhood. ETH fees shown exclude gas.