Comparison with other solutions
butr is a discovery and connection-state layer, not a chain library or a connect modal; here is how it lines up against the categories of tools it composes with.
butr is not a replacement for the wallet tooling you already use. It is the layer most of that tooling skips: discovery and connection state. It composes with chain libraries and wallet SDKs rather than competing with them.
The categories below describe how each kind of tool typically behaves, not a scored ranking of any one product.
- EVM connect kits: wallet detection plus a connect modal for EVM, usually bound to a single chain library.
- Solana wallet adapters: Wallet Standard discovery and React context for Solana, scoped to SVM.
- Embedded / MPC wallet platforms: hosted or key-managed wallets behind a vendor SDK, often spanning chains but custodial in some form.
Capability matrix
| Capability | EVM connect kits | Solana wallet adapters | Embedded / MPC platforms | butr |
|---|---|---|---|---|
| Multi-chain in one pool, equal footing | EVM only | SVM only | Varies, vendor-defined | Yes |
| Framework-agnostic, React-free core | Varies | Base adapters | Varies | Yes |
| No chain-library lock-in (raw signer escape hatch) | Coupled | Coupled | Vendor SDK | Yes |
| Modular install: drop a platform entirely | N/A | N/A | No | Yes |
| Connector-shaped extension seam (bring your own adapter) | Limited | Standard-bound | No | Yes |
| Standards compliance (EIP-6963 / EIP-1193 / Wallet Std) | EIP only | Wallet Std only | Abstracted away | Both |
| Built-in mock adapters for unit tests | Rare | Rare | Vendor mocks | Yes |
Named products
Verified against each project's documentation on 2026-09-08. Chain support below refers to the documented integration, not every chain a connected wallet might support. “Not documented” means the linked documentation does not establish the capability; it is not a claim that an extension is impossible.
| Product | EVM | Solana | Sui | Bitcoin | Polkadot | Connect modal | Chain-library dependency | React-free core | Discovery | Raw provider access | Test fakes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| wagmi | Yes | Outside Ethereum scope | Outside Ethereum scope | Outside Ethereum scope | Outside Ethereum scope | Consumer UI | viem | @wagmi/core | EIP-6963 / injected connectors | Connector provider | mock connector |
| RainbowKit | Yes | Outside documented scope | Outside documented scope | Outside documented scope | Outside documented scope | Yes | wagmi + viem | React UI; uses wagmi core | EIP-6963 / EIP-1193 | Through wagmi connectors | Through wagmi mock |
@solana/wallet-adapter-react | Outside Solana scope | Yes | Outside Solana scope | Outside Solana scope | Outside Solana scope | Separate react-ui package | @solana/web3.js | Separate base/adapters | Wallet Standard / Mobile Wallet Adapter / legacy adapters | Adapter methods; wallet-dependent | Not documented |
| Reown AppKit | Yes | Solana adapter | AppKit Core | Bitcoin adapter | Namespace option; see note | Yes | Adapter-specific (wagmi, ethers, Solana) | JavaScript integration | EIP-6963; adapter-specific discovery | useAppKitProvider returns adapter provider | Not documented |
| butr | Yes | Yes | Yes | Yes | Yes | Consumer UI | None in discovery/core | @usebutr/core | EIP-6963 / Wallet Standard / injected fallbacks / injectedWeb3 | getSigner; tagged by transport | @usebutr/testing |
Reown's JavaScript guide provides a Sui example through AppKit Core's Universal Connector. Its options reference lists a Polkadot namespace; the reviewed installation guide does not establish an injectedWeb3 integration. These are separate capabilities from the dedicated discovery adapters in butr.
“Raw provider access” is not a uniform type across ecosystems. wagmi exposes connector providers, AppKit exposes its adapter's provider, Solana Wallet Adapter exposes adapter methods, and butr returns a signer tagged by transport: an EIP-1193 provider, a Wallet Standard wallet, or a transport-specific handle such as a Ledger device app. See signer bridges.
Sources for the architectural columns:
- wagmi: React setup, vanilla core, EIP-6963 discovery, injected provider, and mock connector.
- RainbowKit: introduction and standards and wagmi/viem installation. The provider and mock entries refer to that underlying wagmi API, not separate RainbowKit APIs.
- Solana Wallet Adapter: application setup and separate UI, wallet standards, and package inventory.
- Reown: JavaScript adapters and AppKit Core, options, EIP-6963, and namespaces, and provider hooks. No public test-double API is described on these pages.
- butr: packages and peers, discovery, Polkadot signer, and test fixtures.
What butr deliberately does not do
butr ships no RPC client, no connect modal, and no key custody. It does not build transactions or render UI.
That smaller surface is the reason it composes. Because butr stops at discovery and connection state, it slots underneath a connect kit's UI, beside an embedded-wallet SDK, and in front of any chain library, without forcing you to adopt the rest of its world. If you want a modal, bring one. If you want viem, bring viem. butr only guarantees you know which wallets exist and which are connected.
This matrix reflects typical behavior of each category, not a feature-by-feature scoring of a specific named product. The named-product table above documents individual products separately.