# Hinkal 查看余额不一致：区分SDK只读会话、REST权限和缓存

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/hinkal-view-session-chain-cache-balance-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按本人已有集成记录对照查看权限、chain、token和扫描时刻，分开SDK/REST字段及缓存刷新回执，避免将401或缺字段补成零余额。

## 使用工具
- [Hinkal SDK / API](https://lianxiaozhi.com/tools/hinkal) · [官方入口](https://hinkal.io/)

## 前置条件
- 已有脱敏SDK/REST余额记录、产品/包版本、chain与采集时间，以及缓存/刷新日志；不需要登录新会话或读取真实私人数据。
- sessionId、nonce、请求签名、nullifyingKey、seed和spending material不提交到教程或支持聊天；这里只记录权限类型与字段存在性。
- 当前档案聚焦SDK/API，不按旧Wallet Main Account/Proxy或Prime成员菜单解释这些记录。

## 1. 标明SDK与REST是不同读取上下文

在原记录写产品、方法、版本和时间。SDK read-only nullifyingKey session与REST GET /balance并不是同一种调用；Hinkal Wallet/Pay/Prime/WaaS/MCP也有不同账户及权限，不能由品牌首页non-custodial描述代替产品确认。

REST余额字段是balances[].chainId/tokenAddress/balance，SDK TokenBalance说明为chainId/erc20Address/balance/optional timestamp。不要在REST响应找erc20Address后认定资产不存在，美元反应式state也不是链上余额字段。

核对结果：每份记录有产品和字段路径，SDK、REST、public balance/私人余额不混用。
依据：[Hinkal 当前 Products](https://hinkal-team.gitbook.io/hinkal/introduction/platform-components.md)
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal API Balance OpenAPI](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/balance.md)

## 2. 核对查看权限而不创建会话

SDK nullifyingKey session可看balances和incoming outputs，不能消费，value-moving方法应拒绝；该key为敏感账户材料。只对照原配置是否是合法view-only，不执行导出、导入或初始化。

REST私人read需要active session+请求签名，optional partner APIkey不是认证替代。normal authMode会话包含授权提交transactions，EIP712模式read仍签请求；因此不能把“只调用GET”或“没有APIkey”称为view-only凭据。

核对结果：记录明确SDK只读/REST会话模式与读取资格；权限未取得标未知，不能索取消费密钥。
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal API Authentication](https://hinkal-team.gitbook.io/hinkal/hinkal-api/description/authentication.md)

## 3. 按具体chain与token核对范围

GET /balance原query有chainId，方法举Solana501、TRON728126428；SDK/privateBalancesWithUSD也按chainId分组。同一public wallet或同token symbol跨链不等同余额，按该链token地址配对。

当前链表明确Ethereum、Arbitrum、Polygon、Base、BNB Chain、Solana、TRON等例子；旧balance示例提Optimism10但现行表未列，不能据此保证部署。/supported-chains只列curated EVM token chains，不含Solana/TRON不代表后者没有private read方法。

核对结果：比较记录属于同链同币；主网、测试网与旧示例范围已区分。
依据：[Hinkal API Balance OpenAPI](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/balance.md)
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal 当前链表与主测试网](https://hinkal-team.gitbook.io/hinkal/ecosystem/supported-chains.md)
依据：[Hinkal Supported Chains 方法的产品范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/supported-chains.md)

## 4. 检查已有缓存/扫描记录的前后关系

SDK文档getTotalBalances文字与getTotalBalance声明拼写不同，按已安装版本原方法记录，不复制猜测函数名运行。已有记录可检查resetCacheBefore/updateTokensListBefore或refreshBalance的chainIdToUpdate/updateType；fresh请求状态不等该次余额已经取得。

REST POST /refresh-cache清caller该chain缓存，使下一次read重取chain state，200只返回success/nonce不返回balance。将已有刷新时刻和下一条同身份余额记录配对；只有refresh200或缓存日志时，不能宣称余额扫描完成。

核对结果：缓存刷新、余额读取与采集时间可配对，方法名/版本冲突和缺后续read明确。
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal Refresh Cache 权限与扫描范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/refresh-cache.md)

## 5. 分开有效余额、空值与读取失败

REST /balance 200要求success、balances及回传nonce。记录success=false/error、HTTP401（signature/nonce或session问题）、500，刷新还可能409 nonce consumed；失败不是balances=[]或balance='0'。

有效TokenBalance.balance是最小单位string，按已取得token decimals换算，未取得decimals时仅保留整数。SDK timestamp可缺、REST余额未提供统一timestamp，不能把接收时间或任意数值当所有记录的Unix毫秒；只比较同范围近时刻记录。

核对结果：输出原数值、精度来源、采集时间和错误分支，未知没有被填成零或实时估值。
依据：[Hinkal API Balance OpenAPI](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/balance.md)
依据：[Hinkal Refresh Cache 权限与扫描范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/refresh-cache.md)
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal API Authentication](https://hinkal-team.gitbook.io/hinkal/hinkal-api/description/authentication.md)

## 6. 按差异来源写出可复查结论

把结果归到产品/字段不同、权限未取得、链/币不同、缓存未跟上或记录仍不足。只读余额本身不证明有权限发款、当前可用或所有历史完整，也不证明某笔private send已付给收款人。

若原状态涉及blocked或风控检查，保留原错误与合法支持路径；不修改筛查配置。完成身份/权限/链币/缓存/余额表，不发新read或refresh，不提供敏感查看材料。

核对结果：结论有具体字段和时间依据，无账户/业务API行为验证部分保持documentation。
依据：[Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
依据：[Hinkal API Authentication](https://hinkal-team.gitbook.io/hinkal/hinkal-api/description/authentication.md)
依据：[Hinkal API Balance OpenAPI](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/balance.md)
依据：[Hinkal Refresh Cache 权限与扫描范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/refresh-cache.md)

## 常见错误
- 把SDK nullifyingKey只读会话与能授权写入的REST normal session混同。
- 认证失败补零余额，或SDK erc20Address与REST tokenAddress混读。
- 用curated EVM supported-chains方法作为全部品牌链表，或将旧10示例当当前OPMainnet支持。
- cache refresh成功不是余额已重新取得；方法名拼写/时间单位未知不能硬补。

## 完成检查
- 形成本人原记录的产品、权限、chain/token、缓存/读取时刻、原金额与错误对照。
- 所有差异有证据或缺口，没有创建/签名会话、导入key、真实余额查询或资金动作。

## 相关知识
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [把数据上链，与只保存数据哈希有什么区别？](https://lianxiaozhi.com/learn/data-onchain-vs-offchain)
- [钱包签消息与签交易有什么区别？不付 Gas 的签名也要读内容](https://lianxiaozhi.com/learn/wallet-message-vs-transaction)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)

## 官方依据
- [Hinkal 当前 Products](https://hinkal-team.gitbook.io/hinkal/introduction/platform-components.md)
- [Hinkal TypeScript SDK 查看会话与状态](https://hinkal-team.gitbook.io/hinkal/hinkal-sdk/sdk-description.md)
- [Hinkal API Authentication](https://hinkal-team.gitbook.io/hinkal/hinkal-api/description/authentication.md)
- [Hinkal API Balance OpenAPI](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/balance.md)
- [Hinkal Supported Chains 方法的产品范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/supported-chains.md)
- [Hinkal Refresh Cache 权限与扫描范围](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/refresh-cache.md)
- [Hinkal 当前链表与主测试网](https://hinkal-team.gitbook.io/hinkal/ecosystem/supported-chains.md)
