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)