CORE ID Docs
Search
K

CID SDK

Use cidjs SDK to interact with Core ID contracts

CID.js

Javascript bindings for the CORE ID .core Domain

Overview of the API

Installation

Install @ciddomains/cidjs, alongcide web3.
npm install @ciddomains/cidjs web3

Getting Started

All that's needed to get started is a web3 provider instance, you should pass it and select network id when creating a new CID instance.
// core mainnet domain example, getAddress
const CID = require('@ciddomains/cidjs').default
const Web3 = require('web3')
async function main(name) {
const provider = new Web3.providers.HttpProvider("https://rpc.coredao.org")
let cid = new CID({ provider })
const address = await cid.name(name).getAddress() // 0x123
console.log("name: %s, address: %s", name, address)
}
main("coreid.core") // 0x9826a59Aa17C36e88AA2F6dC367772381f034401

Reverse Resolution

// core mainnet domain example, getName
const CID = require('@ciddomains/cidjs').default
const Web3 = require('web3')
async function main(address) {
const provider = new Web3.providers.HttpProvider("https://rpc.coredao.org")
let cid = new CID({ provider })
const {name} = await cid.getName(address)
console.log("name: %s, address: %s", name, address)
}
main("0x9826a59Aa17C36e88AA2F6dC367772381f034401") // coreid.core

exports

default - CID
getCidAddress
getResolverContract
getCIDContract
namehash
labelhash

CID Interface

name(name: String) => Name
Returns a Name Object, that allows you to make record queries.
resolver(address: EvmAddress) => Resolver
Returns a Resolver Object, allowing you to query names from this specific resolver. Most useful when querying a different resolver that is different than is currently recorded on the registry. E.g. migrating to a new resolver
async getName(address: EvmAddress) => Promise<Name>
Returns the reverse record for a particular Evm address.
async setReverseRecord(name: Name) => Promise<EthersTxObject>
Sets the reverse record for the current Evm address

Name Interface

async getOwner() => Promise<EvmAddress>
Returns the owner/controller for the current CID name.
async setOwner(address: EvmAddress) => Promise<Ethers>
Sets the owner/controller for the current CID name.
async getResolver() => Promise<EvmAddress>
Returns the resolver for the current CID name.
async setResolver(address: EvmAddress) => Promise<EvmAddress>
Sets the resolver for the current CID name.
async getTTL() => Promise<Number>
Returns the TTL for the current CID name.
async getAddress(coinId: String) => Promise<EvmAddress>
Returns the address for the current CID name for the coinId provided.
async setAddress(coinId: String, address: EvmAddress) => Promise<EthersTxObject>
Sets the address for the current CID name for the coinId provided.
async getContent() => Promise<ContentHash>
Returns the contentHash for the current CID name.
async setContenthash(content: ContentHash) => Promise<EthersTxObject>
Sets the contentHash for the current CID name.
async getText(key: String) => Promise<String>
Returns the text record for a given key for the current CID name.
async setText(key: String, recordValue: String) => Promise<EthersTxObject>
Sets the text record for a given key for the current CID name.
async setSubnodeOwner(label: String, newOwner: EvmAddress) => Promise<EthersTxObject>
Sets the subnode owner for a subdomain of the current CID name.
async setSubnodeRecord(label: String, newOwner: EvmAddress, resolver: EvmAddress, ttl: ?Number) => Promise<EthersTxObject>
Sets the subnode owner, resolver, ttl for a subdomain of the current CID name in one transaction.
async createSubdomain(label: String) => Promise<EthersTxObject>
Creates a subdomain for the current CID name. Automatically sets the owner to the signing account.
async deleteSubdomain(label: String) => Promise<EthersTxObject>
Deletes a subdomain for the current CID name. Automatically sets the owner to "0x0..."

Resolver Interface

address
Static property that returns current resolver address
name(name) => Name
Returns a Name Object that hardcodes the resolver
Build SDK and test on your test machine
yarn install
yarn run build
node main.js