用途:Privy 是嵌入式钱包与认证 SDK,让 dApp 用户通过邮箱、手机、社交登录、Passkey 或已有钱包进入,无需安装浏览器扩展或管理助记词,降低 Web2 用户进入 Web3 的门槛。
主要能力:支持 15 种以上登录方式,包括 email、sms、google、apple、twitter、discord、github、linkedin、spotify、tiktok、farcaster、passkey、wallet、telegram 及自定义 JWT,在 PrivyProvider 的 loginMethods 中配置。钱包采用 2-of-3 Shamir 秘密共享加 TEE:设备份额存于浏览器,Privy 份额存于 TEE 基础设施,恢复份额由用户设置,任意两份可重建私钥,Privy 单方无法动用资金。链支持全部 EVM 链与 Solana,按应用在后台配置。React 侧提供 usePrivy、useWallets、useEmbeddedWallet 等 Hook,可签名、发交易、导出私钥、切换链。服务端提供 PrivyClient,verifyAuthToken 校验访问令牌,getUser({ idToken }) 获取身份令牌中的用户资料。智能钱包基于 Safe,可启用 gas 赞助与批量交易,也可与 ZeroDev 组合做进阶账户抽象。
使用方式:安装 npm install @privy-io/react-auth,在根节点包裹 PrivyProvider,通过 appId 与环境变量初始化,并在 config 中设置 loginMethods、embeddedWallets.createOnLogin、defaultChain、supportedChains 等。服务端使用应用 SECRET(非 app ID)实例化 PrivyClient,在 Express 中间件中读取 Bearer 令牌并调用 verifyAuthToken。
限制与注意事项:必须部署在 HTTPS 下,WebCrypto 依赖安全上下文,HTTP 除 localhost 外会静默失败。嵌钱包在首次登录后惰性创建,登录回调期间尚不存在,需等 useWallets 的 ready。若先创建 Solana 钱包会永久阻塞该用户的 EVM 钱包创建。Farcaster 登录配合 createOnLogin: 'users-without-wallets' 会跳过嵌钱包创建。verifyAuthToken 只适用于访问令牌,身份令牌需用 getUser。默认不含 WalletConnect,需额外安装连接器并提供项目 ID。嵌钱包不跨浏览器或设备持久化,新设备需完成恢复流程。useWallets 返回所有已连接钱包,须按 walletClientType 过滤。Privy 是认证优先,与钱包优先的 RainbowKit 定位不同。v3 已从 @solana/web3.js 迁移到 @solana/kit。
资料中未提供收费标准、具体价格与平台支持细节,暂未提供。