# @usebutr/svm (/api/svm)



## Discovery [#discovery]

### `discoverSvmAdapters(onAdapter): () => void` [#discoversvmadaptersonadapter---void]

Subscribe to Wallet Standard registrations. Returns an unsubscribe function.
Lazily imports `@wallet-standard/app` (optional peer dependency).

## Adapter builder [#adapter-builder]

### `buildSvmAdapter(wallet: WalletStandardWallet): WalletAdapter` [#buildsvmadapterwallet-walletstandardwallet-walletadapter]

Wrap a Wallet Standard wallet into a butr `WalletAdapter`.

### `slugify(name: string): string` [#slugifyname-string-string]

Stable id derivation from a wallet name (adapter authoring).

## Capabilities [#capabilities]

### `resolveWalletStandardCapabilities(wallet): WalletCapabilities` [#resolvewalletstandardcapabilitieswallet-walletcapabilities]

Derive `WalletCapabilities` from advertised Wallet Standard features
(`solana:signMessage`, `solana:signAndSendTransaction`, events, …).

Type: `WalletStandardCapabilityInput`.

## Chains [#chains]

* `SVM_CHAINS` — record keyed by chain id.
* `SVM_CHAINS_LIST` — array (mainnet / testnet / devnet).

## Types [#types]

Solana-specific feature shapes: `SolanaSignMessageFeature`,
`SolanaSignMessageInput`, `SolanaSignMessageOutput`,
`SolanaSignAndSendTransactionFeature`, `SolanaSignAndSendTransactionInput`,
`SolanaSignAndSendTransactionOutput`.

The shared Wallet Standard protocol types (`WalletStandardWallet`,
`WalletStandardWalletAccount`, `WalletStandardAppModule`, `WalletsApp`,
`StandardConnectFeature`, `StandardDisconnectFeature`,
`StandardEventsFeature`, `StandardEventsListener`) live in
[`@usebutr/wallet-standard-shared`](/api/index) — import them from
there directly when casting `getSigner()`.

These feature types are what you cast `getSigner()` to when signing/sending —
see the [Solana integrations](/integrations/solana-web3js).

**Source:** `packages/svm/src/index.ts`.
