Skip to content

A compact library for interacting with domains on the new internet. Supports Impervious domains, Forever and ENS.

License

Notifications You must be signed in to change notification settings

imperviousinc/id.js

Repository files navigation

⚠️ Note: this is still an alpha release.

A compact library for interacting with domains on the new internet. Supports Impervious domains, Forever and ENS.

Features

  • Tiny! About 26kb gzipped < 1 cat pic and with dynamic imports it can be even smaller!

  • Fast! Seamless batching with Promise.all/allSettled

  • Simple API for registering, renewing, transferring, resolving, and more.

  • Supports Dns, text, address & content hash records

  • Supports Impervious domains such as .f, .www and .contract

  • Supports .forever domains

  • Supports ENS including the latest controller & name wrapper!

Installation

npm i @imperviousinc/id ethers

Quick start

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});

// 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)

Continue with documentation

About

A compact library for interacting with domains on the new internet. Supports Impervious domains, Forever and ENS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published