From e21ddaab6d40d572ee65cb43f7963f4c75b86353 Mon Sep 17 00:00:00 2001 From: satoshai-dev <262845409+satoshai-dev@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:25:53 +0000 Subject: [PATCH 1/2] docs: add wallet support matrix to README (#43) Documents which hooks each wallet supports, highlighting OKX limitations for structured message signing and transaction signing. Co-Authored-By: Claude Opus 4.6 --- .changeset/wallet-support-matrix.md | 5 +++++ README.md | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 .changeset/wallet-support-matrix.md diff --git a/.changeset/wallet-support-matrix.md b/.changeset/wallet-support-matrix.md new file mode 100644 index 0000000..c599900 --- /dev/null +++ b/.changeset/wallet-support-matrix.md @@ -0,0 +1,5 @@ +--- +"@satoshai/kit": patch +--- + +Add wallet support matrix to README documenting which RPC methods each wallet supports diff --git a/README.md b/README.md index c6d960d..01d0878 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,21 @@ All 6 wallets work with both headless (`connect('xverse')`) and modal (`connect( | WalletConnect | `wallet-connect` | | OKX | `okx` | +### Wallet Support Matrix + +Not every wallet supports every RPC method. The table below shows which hooks work with each wallet: + +| Hook | Xverse | Leather | Asigna | Fordefi | WalletConnect | OKX | +|------|--------|---------|--------|---------|---------------|-----| +| `useConnect` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| `useSignMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| `useSignStructuredMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | +| `useSignTransaction` | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | +| `useWriteContract` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| `useTransferSTX` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | + +> **OKX limitations:** OKX wallet uses a proprietary API (`window.okxwallet.stacks`) instead of the standard `@stacks/connect` RPC. It does not support `useSignStructuredMessage` (SIP-018) or `useSignTransaction` (raw transaction signing) — calling these hooks while connected to OKX will throw an error. + ## Peer Dependencies - `react` ^18 or ^19 From eccb36bc57d1edf5a02e3e016e64755804fb7789 Mon Sep 17 00:00:00 2001 From: satoshai-dev <262845409+satoshai-dev@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:51:34 +0000 Subject: [PATCH 2/2] docs: wallet support matrix with per-wallet research (#43) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace blanket "all standard wallets supported" with a proper per-wallet matrix based on each wallet's documentation: - Xverse, Leather: full SIP-030 support confirmed - Asigna: transactions confirmed, message signing unverified (multisig limitation) - Fordefi: transactions confirmed, message signing not listed in their docs - WalletConnect: relay — depends on connected wallet - OKX: proprietary API, signStructuredMessage/signTransaction unsupported Includes sources and date for all findings. Co-Authored-By: Claude Opus 4.6 --- README.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 01d0878..568b1bf 100644 --- a/README.md +++ b/README.md @@ -319,18 +319,26 @@ All 6 wallets work with both headless (`connect('xverse')`) and modal (`connect( ### Wallet Support Matrix -Not every wallet supports every RPC method. The table below shows which hooks work with each wallet: - | Hook | Xverse | Leather | Asigna | Fordefi | WalletConnect | OKX | |------|--------|---------|--------|---------|---------------|-----| | `useConnect` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| `useSignMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| `useSignStructuredMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | -| `useSignTransaction` | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | -| `useWriteContract` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| `useTransferSTX` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| `useSignMessage` | ✓ | ✓ | ? | ? | ~ | ✓ | +| `useSignStructuredMessage` | ✓ | ✓ | ? | ? | ~ | ✗ | +| `useSignTransaction` | ✓ | ✓ | ? | ? | ~ | ✗ | +| `useWriteContract` | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | +| `useTransferSTX` | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | + +✓ Confirmed supported | ✗ Unsupported (throws error) | ? Unverified | ~ Depends on the connected wallet + +**Notes:** + +- **OKX** uses a proprietary API (`window.okxwallet.stacks`) instead of the standard `@stacks/connect` RPC. `useSignStructuredMessage` and `useSignTransaction` are explicitly unsupported and will throw. +- **Asigna** is a multisig wallet. Transaction-based hooks (`useWriteContract`, `useTransferSTX`) work, but message signing hooks may be limited since there is no multisig message signature standard on Stacks. +- **Fordefi** supports transactions and contract calls on Stacks, but their [supported blockchains](https://docs.fordefi.com/docs/supported-blockchains) page does not list Stacks under message signing capabilities. +- **WalletConnect** is a relay protocol — all methods are forwarded, but actual support depends on the wallet on the other end. +- **Xverse** and **Leather** implement the full [SIP-030](https://github.com/janniks/sips/blob/main/sips/sip-030/sip-030-wallet-interface.md) interface. -> **OKX limitations:** OKX wallet uses a proprietary API (`window.okxwallet.stacks`) instead of the standard `@stacks/connect` RPC. It does not support `useSignStructuredMessage` (SIP-018) or `useSignTransaction` (raw transaction signing) — calling these hooks while connected to OKX will throw an error. +This matrix was compiled from wallet documentation as of March 2026. Sources: [Xverse Sats Connect docs](https://docs.xverse.app/sats-connect/stacks-methods), [Leather developer docs](https://leather.gitbook.io/developers), [Asigna docs](https://asigna.gitbook.io/asigna), [Fordefi docs](https://docs.fordefi.com/docs/supported-blockchains), [@stacks/connect WalletConnect source](https://github.com/stx-labs/connect/tree/main/packages/connect/src/walletconnect). ## Peer Dependencies