Web (WASM)
The WASM SDK brings BaseID’s Rust implementation to the browser with near-native performance.
Installation
Section titled “Installation”npm install @baseid/wasmInitialization
Section titled “Initialization”The WASM module must be initialized before use:
import { initialize, WasmKeyPair, WasmKeyType, issueCredentialJwt } from '@baseid/wasm';
await initialize();Key Generation
Section titled “Key Generation”const key = new WasmKeyPair(WasmKeyType.Ed25519);console.log('DID:', key.to_did());console.log('Public JWK:', key.to_public_jwk());Issue a Credential
Section titled “Issue a Credential”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);Verify a Credential
Section titled “Verify a Credential”import { verifyCredentialJwt } from '@baseid/wasm';
const result = verifyCredentialJwt(jwt, key.to_public_jwk());console.log('Valid:', result.valid);console.log('Issuer:', result.issuer);Bundle Size
Section titled “Bundle Size”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();Browser Compatibility
Section titled “Browser Compatibility”| Browser | Supported |
|---|---|
| Chrome 57+ | Yes |
| Firefox 52+ | Yes |
| Safari 11+ | Yes |
| Edge 16+ | Yes |