Civic Auth 登录了却没有钱包地址?检查创建状态、连接器和恢复支持
链小知 · 进阶 · 核验 · 依官方文档整理
用原应用已有状态分清认证与钱包创建,检查 EVM/Solana 接入差异,确认外部钱包不等于 Civic 钱包及 SSO 恢复限制。
开始前准备
- 准备原应用名称、登录方式、需要的 EVM/Solana 网络、已知公开地址及已有脱敏 SDK 状态;不提交 ID token 或邮箱验证码。
- 本教程排查已有账户,钱包创建与连接是实际操作;先读取状态,不为排查重复创建账户。
- 前端 React/Next.js 与服务端读取使用不同字段。没有内部记录时,将本页字段交给应用支持核对。
1. 确认应用启用了钱包功能
Civic Auth 仅登录和 Web3 wallet 是不同配置。查看应用说明或已有设置记录是否启用了 Web3 wallet,并接入 @civic/auth-web3;只看用户头像不能确定钱包已创建。
当前正文指出 X 登录没有所需邮箱,不能 provision 嵌入钱包。若使用 X 登录却无钱包,先记录这个限制;不要通过另一个身份新建钱包后声称原钱包已找回。
检查结果:确认认证方式和 Web3 配置,已知限制与未知接入分别记录。
2. 读已有钱包创建状态
Civic 文档区分 userContext.user 的认证状态与 userHasWallet(userContext) 的钱包状态;没有钱包时有 createWallet 和 walletCreationInProgress。用已有脱敏状态判断未创建、创建中或已存在,不能把加载空白填成零余额。
EVM 的 useAutoConnect 可同时处理创建与连接;Solana 无 adapter 需要显式创建,有 adapter 时用户选择 Civic 可触发创建。这些是不同接入路径,先确认原应用走哪一条,再请应用处理相应失败。
检查结果:认证、创建、连接三阶段分别明确,没有以重复创建代替排查。
3. 检查实际地址与连接器
Solana 已有钱包上下文可读 solana.address;EVM 查看当前 SDK 类型及 wagmi useAccount 的地址/连接状态。当前 EVM 正文有 ethereum 与示例 eth.address 差异,按应用已安装 SDK 的类型定义核对,不直接复制可能过时字段。
若界面同时列 Phantom 或 MetaMask,这些可以是另一条连接器。当前文档说外部自托管钱包不能关联 Civic 账户;切换到外部钱包显示的余额不是 Civic 嵌入地址的余额。服务端应通过 getWallets() 返回 walletAddress,不从 JWT 自行猜地址。
检查结果:地址、实际链和当前连接器对应,外部钱包与 Civic 地址没有混并。
4. 把恢复支持与密钥备份分开
Civic 的当前嵌入钱包由 MetaKeep 提供,身份提供方认证是访问条件;文档明确无传统 seed phrase 导出或手动备份。无助记词菜单不能被解释为已经自动拥有一份离线备份。
若失去原 SSO 凭据,保存原应用、公开地址、登录方式和错误,通过官方文档给出的 MetaKeep 支持或 Civic 开发者支持渠道确认恢复流程。支持存在不代表已验收能恢复,也不要求向对话或工单发送私钥。
检查结果:恢复所需身份与支持路径明确,恢复资格、进展或未知状态没有写成必能找回。
5. 核对网络与费用后整理问题
EVM 应用可通过 chains 与 initialChain 限定网络;Solana 的 RPC/adapter 路径独立。记录错误属于无钱包、未连接、链不匹配或 RPC 读取失败;不因文档列多个网络就认定当前应用都启用了。
服务价格分别统计 Auth Only 与有钱包的 MAU,链上费用另算。默认 EOA 不等于自动有 Gas 赞助,账户抽象升级及赞助需另确认。交应用支持的材料包含上述状态和公开地址,避开 token、验证码与秘密。
检查结果:输出具体失败阶段、网络和费用未知项,未将登录成功当钱包可签名或到账证明。
怎样确认完成
- 登录、钱包创建和连接状态已分开,地址与目标链对应或保留具体失败。
- 恢复材料边界及支持路径有官方依据,实际恢复与赞助条件仍按当前账户核查。
- 本教程依据官方文档,未开户、登录、创建、连接、签名或进行恢复验收。
常见错误与边界
- 登录用户不一定已经有钱包;自动连接可能包含创建副作用。
- 外部 connector 可以并列,不能据此认定与 Civic 账户合并。
- SSO 支持恢复、非托管产品说明和独立离线恢复是不同能力。