用途:本技能用于构建连接 1Sat 钱包的 dApp,连接对象是用户已持有的 BRC-100 钱包(浏览器扩展、桌面钱包或 Sigma Identity)。若需以编程方式创建和运行钱包,应改用 wallet-setup 技能。
主要能力:@1sat/connect 是连接核心(connectWallet),@1sat/react 在其上提供 React 组件与 hooks。连接层包含三条路径:BRC-100 自动检测(WalletClient('auto'),覆盖扩展、桌面 localhost、XDM、React Native);Sigma OAuth(浏览器重定向 + CWI iframe);自定义 provider(CWI iframe 桥 url 或自定义 connect 函数)。connectWallet 用 Promise.any 让自动检测与所有已配置 provider 竞争,最先认证成功者胜出,其 provider 类型写入 localStorage 供后续热重连。
React 用法:用 WalletProvider 包裹应用根(支持 autoReconnect、autoDetect、providers 属性),配合 ConnectButton、ConnectDialog、ConnectDialogProvider/useConnectDialog、WalletSelector、SigmaCallback 以及 useWallet hook 使用。所有组件刻意不带样式,仅提供功能原语;带主题的 UI 由 BigBlocks registry 以 shadcn 兼容项分发。
原生 JS 用法:入口为 connectWallet(config),返回 ConnectWalletResult(含 wallet、provider、identityKey、disconnect);未连上时返回 null,视为应展示 provider 选择器。result.wallet 是标准 @bsv/sdk WalletInterface,可直接调用 getPublicKey、createAction、createSignature 等操作。辅助函数包括 getAvailableProviders 与 loadLastProvider。
Sigma OAuth:原生流程导出 initiateSigmaOAuth、completeSigmaOAuth、connectSigmaWallet 三个函数。
安装:bun add @1sat/connect;bun add @1sat/react(已包含 connect);浏览器扩展用 bun add @1sat/extension。BigBlocks 主题块可通过 npx bigblocks add <block> 或 bunx shadcn@latest add https://registry.bigblocks.dev/r/<block>.json 安装。
限制:公开接口没有 createOneSat、isOneSatInjected、waitForOneSat、saveConnection/loadConnection 或事件发射器,这些属于内部实现;OneSatProvider 仅作为类型导出。ConnectButton 没有内置 provider 选择器,也没有 detected 标记。首页未提供收费、价格与平台限制信息。