Skip to content

Web (WASM)

The WASM SDK brings BaseID’s Rust implementation to the browser with near-native performance.

Terminal window
npm install @baseid/wasm

The WASM module must be initialized before use:

import { initialize, WasmKeyPair, WasmKeyType, issueCredentialJwt } from '@baseid/wasm';
await initialize();
const key = new WasmKeyPair(WasmKeyType.Ed25519);
console.log('DID:', key.to_did());
console.log('Public JWK:', key.to_public_jwk());
const jwt = issueCredentialJwt(
key.to_did(), // issuer DID
'did:key:holder', // subject DID
'DegreeCredential', // credential type
'{"name": "CS"}', // claims JSON
key // signing key
);
console.log('JWT:', jwt);
import { verifyCredentialJwt } from '@baseid/wasm';
const result = verifyCredentialJwt(jwt, key.to_public_jwk());
console.log('Valid:', result.valid);
console.log('Issuer:', result.issuer);

The WASM binary is approximately 800 KB gzipped. Use dynamic imports to load it only when needed:

const baseid = await import('@baseid/wasm');
await baseid.initialize();
BrowserSupported
Chrome 57+Yes
Firefox 52+Yes
Safari 11+Yes
Edge 16+Yes