Bundler setup
@owlid/sdk is pure TypeScript — no WASM, no platform binaries. It works out of the box with any modern bundler (Vite, Webpack, Next.js, esbuild, Rollup, Bun) without WASM plugins or cross-origin-isolation headers.
The SDK builds SD-JWT VC bytes with @noble/ed25519 + @noble/hashes — standard application/dc+sd-jwt wire format, so any conformant verifier accepts presentations minted from @owlid/sdk unchanged.
Vite
That's it — no WASM plugins, no optimizeDeps.exclude, no COOP/COEP headers.
Webpack / Next.js
Same story — no special config.
Configuration
Every package — clients and SDK alike — reads runtime configuration from @owlid/config:
Resolution order: explicit override → configure() call → window.__OWLID_CONFIG__ → import.meta.env.VITE_* → process.env.OWLID_* / VITE_* → the hosted Owl ID platform.