In 2026 a dApp might be written by a React dev, a Vue/Angular team, or an AI coding agent generating against whatever framework the project already uses. Often all three touch the same codebase.
The old sdk-dapp assumed one framework and one kind of human author. That no longer works.
So we rebuilt it from the ground up — framework-agnostic, runtime-agnostic, author-agnostic.
Meet sdk-dapp v5: the same library now serves React, Vue, Angular, Solid, Next.js, React Native, vanilla JS, and AI agents with zero changes.
How we did it — three cleanly decoupled layers:
State layerZustand stores split into 8 slices (account, network, txs, toasts…). React devs get hooks (useGetAccount(), useGetNetworkConfig()). Everyone else gets plain functions (getAccount(), getStore().subscribe()). Persists anywhere via custom storage callback. No framework lock-in.
UI layer (@ multiversx/sdk-dapp-ui) Built with Stencil → real Web Components. Unlock panel, transaction modals, toasts work identically in any framework because they’re not tied to any.
Integration layerOne ProviderFactory initApp() replaces the old <DappProvider>. Supports 7 wallets out of the box (DeFi Wallet, xPortal, Ledger, Web Wallet via cross-tab, MetaMask, Passkey, mobile webview). Drop in a custom provider in one line. Switching wallets requires zero code change.
No Redux anywhere (Zustand only — but Redux DevTools still works perfectly).
Result? An AI coding agent can now generate correct sdk-dapp code for any framework the project uses. One set of skills, one set of patterns, everywhere.
This isn’t just a SDK update. It’s the top layer of the full agent-native stack we’re building: sub-second settlement → value movement → onchain trust → agent tooling → and now a developer surface that doesn’t care who (or what) is writing the code.
All five layers assume each other. That’s what lets autonomous agents move value and read reputation inside a single decision cycle.