Skip to main content

Overview

A browser-native JavaScript SDK for integrating the DCENT hardware wallet into web applications. Retrieve addresses and sign transactions over WebHID or Bluetooth — no Bridge program to install.

WebHID · Bluetooth · CAIP-2 / CAIP-19 · BIP-44 · npm: dcent-web-connector

info

Looking for the previous API? The v1 guide is still available under v1 (legacy).

What it is

A developer-focused JavaScript SDK for integrating the DCENT hardware wallet into web apps. It runs entirely in the browser — no bridge program or native helper to install.

With it you can:

  • Read a wallet address and public key for any supported network.
  • Query device info — model, firmware version, connection state.
  • Have the user sign a transaction, message, or typed data on the device.

Every method that reaches the device takes a payload and returns the same { header, body } response — the call shape does not change from one network to the next, and sign() and the chainId-scoped account reads identify the network with a chainId. The connection setters (setTimeOutMs, setConnectionListener, setSignProgressListener, setTransport, popupWindowClose) are local configuration and return void. You pick a transport once with setTransport() ('hid' for WebHID, 'ble' for Bluetooth); each call opens the DCENT popup where the user approves the action on the device.

Requirements

RequirementDetails
DeviceA DCENT Biometric Wallet or a DCENT X. Get one at the DCENT store.
BrowserWebHID and Web Bluetooth run only in Chromium-based browsers — Chrome, Edge, Brave, Opera. Firefox and Safari are not supported.
ConnectionUSB (WebHID) or Bluetooth (Web Bluetooth), selected with setTransport(). No bridge program to install.
FirmwareSome networks and methods require a minimum firmware version, listed per model — DCENT Biometric Wallet (1.x~2.x line) and DCENT X (1.x line, from 1.0.0). The two lines are separate and not comparable. An unsupported request returns the firmware-update error, and the bridge prompts to update.
ExtensionThe connector runs unmodified inside a Chrome MV3 extension — measured in an extension tab and the side panel. A toolbar popup is unsuitable — measured: window.open returns null there and the popup is gone within 100 ms, so the call fails with "popup blocked by browser?". A background service worker has no window at all. MV3 CSP (script-src 'self') means the connector must ship inside your extension bundle.

Install

npm install dcent-web-connector

Select a transport and read an address — a complete first call:

import dcent from 'dcent-web-connector'

dcent.setTransport('hid') // WebHID over USB ('ble' for Bluetooth)

const res = await dcent.getAddress({
chainId: 'eip155:1/slip44:60', // Ethereum mainnet
keyPath: "m/44'/60'/0'/0/0",
})
console.log(res.body.parameter.address) // "0x6A5C…"

Three things to learn first

ConceptWhat it is
chainIdCAIP-2/19 network identifier, e.g. eip155:1/slip44:60. Replaces v1 coinType.
keyPathBIP-44 path, always purpose 44' on DCENT. Required on every sign call.
V1ResponseUniform { header, body } envelope returned by every call that reaches the device (the connection setters return void).

How it works

Your app talks only to the connector. The connector opens a DCENT popup and reaches the device directly from the browser over WebHID or Bluetooth — there is no native helper to install:

DCENT Web Connector v2 architecture — app → connector → bridge → device

tip

No native app to install. Transport is selected in-page with setTransport() ('hid' = WebHID, 'ble' = Bluetooth).

Packages

Everything ships in the single npm package dcent-web-connector — there is no separate download. The source repository also contains:

  • src/ — the connector library source.
  • docs/ — the per-family payload contract (v2-payload-contract.md) and a frozen snapshot of the original single-file guide (legacy-v2-dev-doc.html). This guide is now maintained here, not in that file.
  • playground/ — request presets used by the example page (accounts, EVM / non-EVM transactions, REST).

↗ Source on GitHub

Example code

A runnable example page exercises the API end to end against a connected device:

Version history

Published releases of the dcent-web-connector npm package on the v2 line. The version jumps 0.16.02.0.0 to align the package version with the v2 API generation — there is no 1.x. Releases numbered 0.x belong to the v1 API; their history is listed on the v1 (legacy) page.

VersionDateChange
2.0.02026-08-27First v2 release. The 21 per-chain get*Signed* wrappers are replaced by a single sign({ method, chainId, payload }), chain identity moves from the coinType enum to CAIP-19 chainId, and the DCENT Bridge native app is no longer required — the connector reaches the device over WebHID or Bluetooth. See Migration.

Support

Need help integrating the connector, or hitting something this guide does not cover? Email contact@iotrust.kr — include the chainId, the method you are calling, the connector version, and the device model/firmware if the issue involves a device.