Configurations
Developers can develop wallet application using our web sdk. Install the dcent-web-connector from npm repository.
npm install dcent-web-connector
Developer can access api through window.DcentWebConnector object or DcentWebConnector object.
const DcentWebConnector = require('dcent-web-connector')
Requirement
- Must have a
DCENT Biometric wallet.
You can get it at DCENT website : https://dcentwallet.com/Shop - You need to install the latest
DCENT Bridge.
DCENT Bridge Download : http://bridge.dcentwallet.com/download - DCENT Biometric will be connected with your PC or Laptop using USB Cable(Micro USB 5-pin type).
Basic structure
Functions
All API functions return a Promise.
When function processing is completed, it is resolved. If an error occurs, it is rejected.
In either case, respond with a JSON object.
Returned JSON object type
{
"header": {
"version": "1.0",
"request_from": "",
"status": ""
},
"body": {
"command" : "",
"parameter" : {}
}
}
Common Errors
If DCENT wallet isn't connected via USB, you'll get the following error:
{
"header": {
"version": "1.0",
"request_from": "wam",
"status": "error"
},
"body": {
"error": {
"code": "no_device",
"message": "DCENT Biometric Wallet is not connected"
}
}
}
When executing a function that requires user authentication, an error occurs if the user cancels the authentication. The following shows the user cancel error in the Ethereum signed Transaction.
{
"header": {
"version": "1.0",
"request_from": "ethereum",
"status": "error"
},
"body": {
"command": "transaction",
"error": {
"code": "user_cancel",
"message": "user cancel"
}
}
}
If the bridge service popup window is closed while calling a function and waiting, the following error occurs:
{
"header": {
"version": "1.0",
"request_from": "dcent-web",
"status": "error"
},
"body": {
"error": {
"code": "pop-up_closed",
"message": "Pop-up windows has been closed"
}
}
}
Basic functions
DcentWebConnector initialize
dcent-web-connector provides functions for using DCENT Biometric Wallet.
var result
try{
result = await DcentWebConnector.info()
}catch(e){
result = e
}
info() returns :
{
"header": {
"version": "1.0",
"request_from": "",
"status": ""
},
"body": {
"command" : "",
"parameter" : {
"version": "1.0.0",
"isUsbAttached": "true | false"
}
}
}
When the function is called from your web application, if DCENT Bridge Service is not running as a pop-up, dcent-web-connector will automatically open a pop-up window and send a function request
Set TimeOut Time
Sets the maximum time the function will run. Once the timeout time is set, it is valid until the value is set again. The default value is 60 seconds.
You can set the timeout time by calling setTimeOutMs () as shown below.
try {
await dcent.setTimeOutMs(60000) // 60 sec, The default value is 60 seconds.
} catch (e) {
console.log(e)
}
All functions except setTimeOutMs function are called and then respond with JSON Object as below when timeout occurs.
{
"header": {
"version": "1.0",
"response_from": "dcent-web",
"status": "error"
},
"body": {
"error": {
"code": "time_out",
"message": "The function execution time has expired"
}
}
}
Close pop-up window
dcent-web-connector will automatically open a pop-up window and send a function request. After each request to device is ended, it is recommended to close popup for enhancing user experience.
var result
try{
result = await DcentWebConnector.info()
}catch(e){
result = e
}
// close pop-up window of DCENT Bridge Service
DcentWebConnector.popupWindowClose()
Set Device Connection Listener
Set listener for device connection state. Before processing a functions request, dcent-web-connector check the device connection state. If the state is changed, the device connection listener will be called.
// device connection listener ( callback )
function connectionListener(state) {
if (state === DcentWebConnector.state.CONNECTED) {
console.log('DCENT is Connected');
} else if (state === DcentWebConnector.state.DISCONNECTED) {
console.log('DCENT is Disconnected');
}
}
try {
// set the device connection listener
DcentWebConnector.setConnectionListener(connectionListener)
} catch(e) {
}
Address Path
All address path in the API should follow BIP44 rules.
m / purpose' / coin_type' / account' / change / address_index
Coin Type
DcentWebConnector.coinType is defined in the source code below.
APIs
Wallet device and accounts info.
Address & XPUB
You can get an address or XPUB for a specific private key with the APIs below.
Ethereum & EVM compatible network
You can find the APIs to generate signature for Ethereum, EVM compatible network.
Klaytn
You can find the APIs to generate signature for Klaytn network.
Bitcoin & Bitcoin compatible network
You can find the APIs to generate signature for Bitcoin and Bitcoin compatible network.
XRPL (XRP Ledger)
You can find the APIs to generate signature for XRPL transactions.
Hedera (HBAR & HTS)
You can find the APIs to generate signature for Hedera transactions.