Core SDK
Installation
We recommend switching to Node.js version 16 to make sure common crypto dependencies works.
Then run:
Getting Started
Parameters:
provider
:rpcUrl
HTTP Web3 Provider
headers
onchainSignature
- If DAPP needs to re-initiate SDK in every time using, then use this signatureThis signature is signed message by end-user (
MSG_SIGNED
)When init SDK -> put
MSG_SIGNED
into thisonchainSignature
Each action related to the SDK, DAPP will take the
onchainSignature
and attach it to API requests.
authority
getPerSign()
- If DAPP initiates SDK Global, then use this signatureInitialize the global SDK with getPerSign which is a function that requires the user to sign or cache anywhere.
Each action related to the SDK, DAPP will get the
onchainSignature
by the SDK itself callinggetPerSign()
with the stringMSG_SIGNED
to attach to API requests.
refId
: Default referral ID when user register.
You should set your ID in the refID to receive the refback amount.
sendTransaction
(required)data
: encode of contract methodto
: Contract AddressDAPP needs to build function sendTransaction() on VICTION to excuse on-chain transaction and receive TransactionHash for SDK.
the parameters “data” & “to” are received while init SDK Configuration
Functions
Init Configuration
initConfig()
allows to init base configuration from OneID SDK
Interface:
Note:
Inspect & Core SDK are using same system config, developer shall only need to init once.
Search OneID
search()
allows users to find the IDs that they want to register.
Search Rule:
Text and not including special characters
or search exactly ID (for example: "test.c98")
<search> length must be >= 3 characters
Search result:
<search>
+ all supported Top Level IDs (TLIDs)
Interface:
Parameter:
search
: The ID Name that user wants to register (ex: "test")
Example:
Returns:
Parameter:
category
: OneIDs supports 4 category as following:COMMON
This is Regular IDs that allows user to register normally.
PROTECTED
IDs contain sensitive, inappropriate language and violate the OneID’s policies. You can not register these Governance IDs.
BANNED
IDs contain sensitive, inappropriate language and violate the OneID’s policies. You can not register these Governance IDs
PREMIUM
Premium IDs are special and popular IDs. Register fee for these IDs may be higher than normal.
tokenID
: the On-chain NFT Token ID of the ID NamecontractAddress
: the On-chain contract address of corresponding TLIDexpireAt:
Expiration time in TimeStamp when the ID is registeredisAvailable
: True/FalseIf True: The ID Name not yet registered
If False: The ID name is already registered
price:
the Price number is in $ with decimal 18
Get OneID Info
getInfo()
supports to get all information of an ID Name.
Interface:
Parameter:
id
: The ID Name that needs to get information (ex: "test.c98")
Example:
Returns:
Get OneID detail Price
price()
will return all the price components of an ID Name
Interface:
Parameters:
category
: get fromsearch()
id
: the ID Name that user wants to registerduration
: the duration that goes to register (in seconds)expiredAt:
The expiration time of the ID, this can also get fromsearch()
(in seconds)isReferrer
: true/false when applying ID Referrer, user will receive referral back amount.
Example
Returns
Parameters:
Total
=durationFee
+serviceFee
+speicalIDFee
+premiumPeriod
-durationDiscount
-refback
commitmentFee:
this is pre-order fee when requestcommit()
Register OneID
In order to request OneID Registration, developers need to request 2 steps:
commit()
Commit the ID & submit Pre-oder fee to avoid front-running
Pre-order fee = 10% Service Fee as configuration
register()
To submit order and request to register the ID.
Interface:
After requested commit()
, the commitment
shall be generated & stored in contracts. In order to avoid front-running, the register()
must be in period time between 30 seconds and 1 hour (minCommitmentAge & maxCommitmentAge) since the previous committed time.
Request the function makeCommit()
to get expiration time of commitment.
After requested commit(), and wait for 30 seconds (minCommitmentAge) to avoid front-running, the user requests register()
to register the ID
Parameters
id
: The ID name that's going to registerduration:
The duration that's going to register (in seconds)senderAdrress
: the address of registrantpaymentToken:
Contract address of Payment tokenrefID:
Optional - by default it will get refId from init, input another ID if you need to change the refID to another.
You should set your ID in the refID to receive the refback amount.
Returns:
Register Multiple IDs
OneID also offers functions to register multiple IDs. Similar to single register, multiple register also required 2 following steps to avoid front-running:
multiCommit()
and
multiRegister()
Interface:
Parameter
id
: the ID Name that's going to registerduration
: the duration that goes to register (in seconds)senderAddress / owner
: (Optional) the address of registrant.will get
senderAddress
if empty
Note:
If user adds more IDs or change duration after committed, then they need to submit commit again.
Returns:
Make Commitment
makeCommit()
supports to get the commitment information after commit()
of an iD
Interface:
Parameters:
id
: the ID Nameduration
: the duration that's going to register (in seconds)senderAddress: registrant address
index: optional : Index of the commit
Returns:
Parameters:
commitAge
: the Expiration of the commitment when commit()
Extend OneID
extend()
a name, extending the name's expiration by duration
seconds.
OneID also offers extend multiple IDs through function multiExtend()
Interface:
Returns:
Link Wallet to OneID
linkedWallet()
uses to write record of 70+ Multi-chain Wallet to the ID.
After linking multi-chain wallet to ID, the ID can be used to receive Tokens from any network.
Use C98 Extension to easily get addresses of 70+ chains in Multi-chain Wallet.
Interface:
Parameters:
chain
: the chain key (for example: CHAIN_KEY.BINANCE_SMART = 'binanceSmart')address
: the corresponding address of that Chain.
Validation:
must have VICTION Wallet in
LinkedWallet[]
list
Returns:
UnLink Multi-chain Wallet
unlinkWallet()
uses to remove the Multi-chain Wallet records of the ID from that Wallet. Moreover, users can use the Linked Wallet to unlink even if it's not an owner.
Interface:
Parameters:
id
: the ID NamesenderAddress
: the Address of unlink requester
Returns:
Re-claim Permission
Users need to re-claim permission when the Controller address different from Owner address in the contract of an ID Name. This is always happened when the ID NFT is sent to another address (or trading in NFT Marketplace).
Interface:
Parameters:
id
: the ID namesenderAddress
: the requester address (this should be owner address)
Returns:
Set Primary Name
setPrimaryName()
will assign one of Linked IDs as a representative account and serve as a cross-platform Web3 username and profile. Users can only designate one primary name per account.
Linked IDs means the ID that currently has records "Linked Wallet" of the current wallet of users, it also means the ID can't be set Primary Name when have no record "Linked Wallet"
Interface:
Parameters:
id
: The ID Name
Returns:
Errors Code
Last updated