VaultOS Suite Developer Portal

Getting started guide for integrating hardware wallet signing into your apps

Getting started — integrate secure hardware signing

Welcome to the VaultOS Suite Developer Portal. This guide helps developers integrate secure hardware wallet support — including WebUSB, WebHID, and companion app flows — into web and native applications. Use our SDKs and sample code to implement secure transaction signing, key management, and on-device confirmations. Clear integration guides, reliable SDKs, and best practices here help your product offer secure, non-custodial experiences to users while improving developer time to market.

1

Install SDKs & tools

Choose from our JavaScript SDK, TypeScript bindings, or native Rust/Go libraries. The SDK abstracts WebUSB/WebHID and companion protocols so you can sign transactions with minimal code.

2

Connect & enumerate devices

Detect wallets with WebUSB or WebHID, request permission, and present the user with an on-device pairing UI. Always show clear prompts and explain why device permissions are needed.

3

Sign & verify transactions

Send the transaction payload to the device for deterministic signing. Verify signed payloads server-side and show the user the on-device approval details for human verification.

Secure signing

Protect private keys inside the hardware device — signing happens offline and only signatures are returned to your app.

Cross-chain support

Support Bitcoin, Ethereum, EVM chains, Solana, and custom blockchains with multiple derivation paths.

Replay protection

Implement nonces and chain-aware signing for robust transaction replay protection.

Companion app

Offer mobile companion flows using deep links or QR pairing for users who prefer Bluetooth or mobile-only experiences.

Auditable SDK

Open-source SDKs with clear contracts and audits make integration transparent and trustworthy.

Developer tooling

CLI tools, simulators, and testnets to validate flows before shipping to production.

Sample JavaScript code

// enumerate devices and request permission (simplified)
import { VaultOS } from 'vaultos-sdk';

async function connectWallet(){
  const wallet = await VaultOS.requestDevice();
  await wallet.open();
  const pubkey = await wallet.getPublicKey("m/44'/60'/0'/0/0");
  console.log('pubkey', pubkey);
}

// create a transaction and ask the device to sign
async function signTx(wallet, txPayload){
  const sig = await wallet.signTransaction(txPayload);
  // verify & broadcast with your backend
  return sig;
}
Integration tips: Use clear UI copy when requesting device access, display all transaction details on the device screen, and provide recovery/seed guidance in your product docs. Apply rate limiting on backend endpoints that verify signatures and store only public metadata — never store private keys or recovery seeds on your servers.