Starknet ID
Search
⌃K

Starknetid.js SDK

This SDK will enable every developer to redeem any data that is written on a Starknet Identity. Moreover, it'll permit you to access utils for an easy manipulation of domains.

Get started

Installation

# using npm
npm install starknetid.js [email protected]
# using yarn
yarn install starknetid.js [email protected]

Usage for dApp developers

Basic usage
Import StarknetIdNavigator from starknetid.js package to access functions. StarknetIdNavigator needs to be initialize with a provider.
import { StarknetIdNavigator } from 'starknetid.js'
import { Provider } from 'starknet'
const provider = new Provider();
const starknetIdNavigator = new StarknetIdNavigator(provider);
const addr = await starknetIdNavigator.getAddressFromStarkName('test.stark');
Using custom contracts
It's possible to use starknetid.js with custom naming and identity contracts.
import { StarknetIdNavigator } from 'starknetid.js'
const starknetIdNavigator = new StarknetIdNavigator(provider, {
naming: customNamingContract,
identity: customIdentityContract
})
Using utils functions
You can access utils function outside of the StarknetIdNavigator object through the utils namespace
import { utils } from 'starknetid.js'
const encodedDomain = utils.encodeDomain('test.stark');

SDK

Resolving domains

getAddressFromStarkName()
StarknetIdNavigator.getAddressFromStarkName(domain: string) => string
Get address from Starkname.
getStarkName()
StarknetIdNavigator.getStarkName(address: string) => string
Get Starkname from address.
getStarknetId()
StarknetIdNavigator.getStarknetId(domain: string) => number
Get Starknet id from domain.

Resolving user data

getUserData()
StarknetIdNavigator.getUserData(dOrDomain: number | string, field: string) => BN
Get user data from starknet id or domain.
getExtentedUserData()
StarknetIdNavigator.getExtentedUserData(dOrDomain: number | string, field: string, length: number) => BN[]
Get user data from starknet id or domain. Use this function to retrieve an array knowing its size. It will return zeros if not written.
getUnboundedUserData()
StarknetIdNavigator.getUnboundedUserData(dOrDomain: number | string, field: string) => BN[]
Get User unbounded data from starknet id or domain. Use this function to retrieve an array up to zero (not included).

Resolving verifier data

getVerifierData()
StarknetIdNavigator.getVerifierData(dOrDomain: number | string, field: string, verifier?: string) => BN
Get verifier data from starknet id or domain. If no verifier contract is provided, it will return the starknet.id verifier contract address deployed on the StarknetIdNavigator provider chain id.
getExtendedVerifierData()
StarknetIdNavigator.getExtendedVerifierData(dOrDomain: number | string, field: string, length: number, verifier?: string) => BN[]
Get extended verifier data from starknet id or domain. Use this function to retrieve an array knowing its size. It will return zeros if not written. If no verifier contract is provided, it will return the starknet.id verifier contract address deployed on the StarknetIdNavigator provider chain id.
getUnboundedVerifierData()
StarknetIdNavigator.getUnboundedVerifierData(dOrDomain: number | string, field: string, verifier?: string) => BN[]
Get User unbounded data from starknet id or domain. Use this function to retrieve an array up to zero (not included). If no verifier contract is provided, it will return the starknet.id verifier contract address deployed on the StarknetIdNavigator provider chain id.

Utils

isStarkDomain()
utils.isStarkDomain(domain: string) => boolean
Check if domain is starknet.id domain
decodeDomain()
utils.decodeDomain(encoded: bigint[]) => string
Decode starknetid domain '454245...' -> 'test.stark'
decode()
utils.decode(felt: bigint) => string
Encode bigint into string
encodeDomain()
utils.encodeDomain(domain: string) => bigint
Encode starknetid domain 'test.stark'.. -> '454245..'
encode()
utils.encode(decoded: string) => bigint
Encode string into bigint
getNamingContract()
utils.getNamingContract(chainId: StarknetChainId) => string
Get starknet.id naming contract address from chainId. If contract is not deployed will throw an error.
getIdentityContract()
utils.getIdentityContract(chainId: StarknetChainId) => string
Get starknet.id identity contract address from chainId. If contract is not deployed will throw an error.
getVerifierContract()
utils.getVerifierContract(chainId: StarknetChainId) => string
Get starknet.id verifier contract address from chainId. If contract is not deployed will throw an error. At the moment, starknet.id verifier contract only support Discord, Twitter and Github fields.