Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@unstoppabledomains/resolution

Package Overview
Dependencies
Maintainers
6
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@unstoppabledomains/resolution

Domain Resolution for blockchain domains

  • 1.10.4
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6.3K
decreased by-50.78%
Maintainers
6
Weekly downloads
 
Created
Source

Resolution

NPM version CI Bundle Size Minified Bundle Size Minified Zipped Unstoppable Domains Documentation Get help on Discord

Resolution is a library for interacting with blockchain domain names. It can be used to retrieve payment addresses, IPFS hashes for decentralized websites, and GunDB usernames for decentralized chat.

Resolution is primarily built and maintained by Unstoppable Domains.

Resoultion supports decentralized domains across three main zones:

  • Crypto Name Service (CNS)
    • .crypto
  • Zilliqa Name Service (ZNS)
    • .zil
  • Ethereum Name Service (ENS)
    • .eth
    • .kred
    • .xyz
    • .luxe

For more information, see our detailed API Referrence.

Installing Resolution

Resolution can be installed with either yarn or npm.

yarn add @unstoppabledomains/resolution
npm install @unstoppabledomains/resolution --save

If you're interested in resolving domains via the command line, see our CLI section.

Using Resolution

Create a new project.

mkdir resolution && cd $_
yarn init -y
yarn add @unstoppabledomains/resolution

Look up a domain's crypto address

Create a new file in your project, address.js.

const { default: Resolution } = require('@unstoppabledomains/resolution');
const resolution = new Resolution();

function resolve(domain, currency) {
  resolution
    .addr(domain, currency)
    .then((address) => console.log(domain, 'resolves to', address))
    .catch(console.error);
}

resolve('brad.crypto', 'ETH');
resolve('brad.zil', 'ZIL');

Execute the script.

$ node address.js
brad.crypto resolves to 0x8aaD44321A86b170879d7A244c1e8d360c99DdA8
brad.zil resolves to zil1yu5u4hegy9v3xgluweg4en54zm8f8auwxu0xxj

Find the IPFS hash for a decentralized website

Create a new file in your project, ipfs_hash.js.

const { default: Resolution } = require('@unstoppabledomains/resolution');
const resolution = new Resolution();

function resolveIpfsHash(domain) {
  resolution
    .ipfsHash(domain)
    .then((hash) =>
      console.log(
        `You can access this website via a public IPFS gateway: https://gateway.ipfs.io/ipfs/${hash}`
      )
    )
    .catch(console.error);
}

resolveIpfsHash('homecakes.crypto');

Execute the script.

$ node ipfs_hash.js
You can access this website via a public IPFS gateway: https://gateway.ipfs.io/ipfs/QmVJ26hBrwwNAPVmLavEFXDUunNDXeFSeMPmHuPxKe6dJv

Find a GunDB username

Create a new file in your project, gundb.js.

const { default: Resolution } = require('@unstoppabledomains/resolution');
const resolution = new Resolution();

function resolveGunDbRecords(domain) {
  resolution
    .chatId(domain)
    .then((id) => console.log(`Domain ${domain} has a GunDB chat ID: ${id}`))
    .catch(console.error);
}

resolveGunDbRecords('homecakes.crypto');

Execute the script.

$ node gundb.js
Domain homecakes.crypto has a GunDB chat ID: 0x47992daf742acc24082842752fdc9c875c87c56864fee59d8b779a91933b159e48961566eec6bd6ce3ea2441c6cb4f112d0eb8e8855cc9cf7647f0d9c82f00831c

Command Line Interface

To use resolution via the command line install the package globally.

yarn global add @unstoppabledomains/resolution
npm install -g @unstoppabledomains/resolution

By default, the CLI uses https://main-rpc.linkpool.io as its primary gateway to the Ethereum blockchain. If you'd like to override this default and set another provider you can do so using the -C flag.

For example:

resolution -C url:https://main-rpc.linkpool.io/

Use the -h or --help flag to see all the available CLI options.

Error Handling

When resolution encounters an error it returns the error code instead of stopping the process. Keep an eye out for return values like RECORD_NOT_FOUND.

Development

Use these commands to set up a local development environment (macOS Terminal or Linux shell).

  1. Install nvm

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
    
  2. Install concrete version of node.js

    nvm install 12.12.0
    
  3. Install yarn

    npm install -g yarn
    
  4. Clone the repository

    git clone https://github.com/unstoppabledomains/resolution.git
    cd resolution
    
  5. Install dependencies

    yarn install
    

Internal network config

Internal network config can be updated by running yarn network-config:pull task and committing updated file.

Free advertising for integrated apps

Once your app has a working Unstoppable Domains integration, register it here. Registered apps appear on the Unstoppable Domains homepage and Applications page — putting your app in front of tens of thousands of potential customers per day.

Also, every week we select a newly-integrated app to feature in the Unstoppable Update newsletter. This newsletter is delivered to straight into the inbox of ~100,000 crypto fanatics — all of whom could be new customers to grow your business.

Keywords

FAQs

Package last updated on 22 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc