Getting started

Quick start

Here's a quick example that uses id.js to get the owner of a domain:

import { Id } from '@imperviousinc/id';
import { BrowserProvider, Contract, parseEther } from 'ethers';

const provider = new BrowserProvider(...); // get a provider
const network = await provider.getNetwork() ;

const id = new Id({network, provider});

const bob = await id.getOwner('bob.forever');
const vitalik = await id.getOwner('vitalik.eth');

// owner of a TLD
const www = await id.getOwner('www');

console.log(bob, vitalik, www);

// Seamless batching: id.js queries resolvers and controllers on-chain
// use Promise.all/allSettled to batch your calls.
const results = await Promise.all([
  id.getOwner('live.forever'),
  id.getText('vitalik.eth', 'url'),
  id.getPrice('bob.eth', 365*24*60*60),
  id.getAddress('bitcoin.contract'),
  id.getName('0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'),
  id.getDns('impervious.forever', 'A'),
  id.getRegistration('example.eth')
]);

// it took a single RPC call to get all the results!
console.log(results);

id.js overrides ether's resolver to enable it to query Impervious domains, Forever and ENS:

// Send bob.forever 1 ETH
await id.provider.sendTransaction({
   to: 'bob.forever',
   value: parseEther('1'),
})

// Use .contract domains with ethers!
const contract = new Contract('impervious.contract', abi, id.provider)
Previous
Installation