帖子
分享您的知识。
如何按时期获得的赌注奖励明细?
我一直在努力找到一种方法来详细了解我每个时代获得的赌注奖励. 我已经查看了像Suivision和Suiscan这样的平台,但它们只显示了迄今为止累积的总奖励. 有什么办法可以查看每个时代的奖励吗?包括我在内的许多人需要这个来报税.
- Sui
答案
15要在Sui网络上按时代细分所获得的赌注奖励,您可能需要直接依赖Sui网络的数据,因为Suivision和Suiscan等平台可能不会提供这种详细的明细. 以下是访问基于纪元的奖励信息的几种潜在方法:
1. Sui 区块链数据 API
- Sui 提供了一个 API,可以通过查询来获取历史数据,包括质押奖励. 您可以使用它通过查询特定的质押数据来跟踪每个时代获得的奖励.
- 查看 Sui JSON-RPC 或 Sui Explorer API 中是否有与奖励相关的端点(如果有). *示例查询(假设):寻找为每个验证者提供质押奖励或每个周期奖励的终端节点. 您可能需要按地址和时代过滤数据.
2. 用于质押数据的 Sui CLI
Sui CLI 可能会提供详细的质押信息,包括质押奖励. 您可以使用 CLI 查询您的质押余额、奖励和纪元详细信息.
sui client query --address <your-address> --staking-rewards
这将返回与质押相关的详细信息,但您可能需要手动或通过脚本汇总���据,以按周期对其进行细分.
3. 自定义脚本或机器人
如果你熟悉编程,你可以编写一个脚本(例如用Python)来汇总来自Sui API或像Suiscan这样的区块链浏览器的奖励数据. 该脚本可以按周期获取质押奖励,并为您提供详细的细分.
自定义脚本的步骤:
- 使用
Sui SDK
或任何可用的 Sui API 来检索质押奖励数据. - 按纪元筛选并汇总每个时代的奖励.
- 以适合纳税申报的格式(例如 CSV、JSON)存储结果.
4. 第三方数据提供商
如果Suivision和Suiscan不提供此功能,则可能需要检查其他第三方平台或Sui生态系统工具. 一些平台可能会提供更精细的数据,例如提供详细历史奖励信息的区块浏览器或质押平台.
5. 验证器节点 API
验证者还可以按周期为其委托人公开质押奖励数据. 一些验证器节点提供仪表板或 API,您可以在其中查询特定委托的奖励,包括按时代划分的历史奖励.
结论:
如果 Suivision 和 Suiscan 不提供按时代划分的细分信息,则你要么需要使用 Sui 的直接 API 或 CLI,要么编写自定义脚本来提取和处理这些数据. 一定要随着时间的推移跟踪这些数据,因为它对纳税申报和审计很有用.
要获取按周期划分的已赚取的质押奖励的详细明细,您可以使用suix_getStakes
验证器或质押地址查询 Sui 的RPC 端点,后者会返回每个周期的奖励数据. 或者,使用Sui Explorer的API(https://explorer.sui.io/) 或SuiVision Analytics等第三方工具来提取历史奖励分配. @mysten/sui.js
对于编程访问,Sui TypeScript SDK(stakeStatus
) 可以通过筛选响应中的字段来解析这些数据. 如果目标是纳税申报,可以考虑导出原始 JSON 数据并使用脚本进行处理以满足您的会计需求.
要在Sui网络上获得按时代划分的已获得的赌注奖励的详细明细,Suivision和Suiscan等平台通常仅显示累积的总奖励,这是对的. 不幸的是,这种详细信息并不总是可以通过公共平台轻松获得. 但是,有几种方法可以解决这个问题:
1. 查看 Sui 的验证器控制面板或 API
Sui 拥有验证器仪表板和公共 API,可以提供有关质押奖励的更多详细信息,包括基于纪元的明细. 一些 Sui 验证器公开了 API,允许您查询数据,��如每个周期的奖励. 您可能需要使用Sui 节点或直接访问Sui API才能获取这些数据.
*访问奖励数据的步骤:
- 您可以查看验证者或节点是否有任何提供特定纪元奖励详情的可用 API 终端节点.
- 访问Sui Explorer或验证器专用平台,这些平台可能会通过其 API 暴露更多细节.
2. 使用 Sui CLI(命令行界面)
Sui CLI提供了与区块链进行交互的工具,它可以提供有关质押奖励的更详细见解. 您可以使用 CLI 获取有关纪元奖励的详细信息(如果有).
*命令:你可以使用 sui
CLI 来查询质押信息. 尽管它不提供获得纪元奖励的直接命令,但您可以提取质押交易历史记录或查看与每个时代相关的质押事件.
以下是如何获取与质押相关的数据的示例:
sui client query --gas-budget 10000 --query-type stake
这不会直接按时期给出详细的细分,但是通过一些筛选和脚本编写,您可以随时间推移提取必要的数据,并按周期对其进行分组.
3. 使用具有 Epoch 细分功能的区块链分析工具
一些高级区块链分析工具,例如Nansen或Dune Analytics,可能允许您提取更详细的历史奖励数据. 虽然这些平台在默认情况下可能不支持 Sui,但您可以检查它们是否为 Sui 提供任何自定义分析或查询,尤其是在您出于税收目的处理大量质押数据时.
4. 通过交易历史记录手动分解
*方法:您可以通过查看您的质押交易并检查与特定时期相关的奖励发放情况来手动检查奖励.
- 对于每笔质押交易,请检查时间戳并将其与纪元过渡相关联.
- 奖励数据可能与这些交易和纪元编号相关联,通过导出它们(从 Sui Explorer 或其他探索者),您可以手动计算每个时代获得的奖励.
5. 联系您的验证器
一些 Sui 验证器或质押平台可能会提供详细报告,或者可以提供有关 epoch 获得的奖励的自定义查询,尤其是在您持有大量股份的情况下.
摘要:
目前,Suiscan和Suivision不提供直接的基于纪元的奖励细分,但您可以通过以下方式实现这一目标:
- 访问Sui 节点 API以获取详细的交易数据,包括特定纪元的奖励.
- 使用Sui CLI查询质押数据. *区块链分析平台,例如Nansen或Dune,用于自定义报告. *手动关联质押交易与时代转换. *联系您的验证者,获取更多量身定制的报告.
如果您需要详细的纳税申报记录,最好的选择可能是通过Sui API进行自定义查询或联系SUI特定数据提供商.
使用Sui CLI或节点 RPC来获取每个纪元的奖励:
- CLI 命令:
sui client staked-sui --address YOUR_ADDRESS
显示赌注详情,包括纪元明细.
- RPC 查询:
致电
suix_getStakes
您的地址以获取结构化奖励数据.
备选方案:
-从资源管理器导出交易历史记录(按StakeReward
事件过滤).
**注意:**如果您同步钱包,Koinly等税务工具可能会自动计算此金额.
*(奖励基于时代,但通常在 UI 中汇总——原始数据可通过 API 获得. ) *
Sui 区块探索者(Suivision、Suiscan)目前显示总质押奖励,但不显示每个时代的分解次数.
要获得分阶段的奖励,请执行以下操作:
- 使用
sui_getStakingRewards
带有自定义脚本的Sui API():
curl -X POST https://fullnode.mainnet.sui.io \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "sui_getStakingRewards",
"id": 1,
"params": ["<your_address>"]
}'
这将返回按时代分组的奖励.
- 解析响应:每个条目都包含
epoch
和amount
,可对纳税申报进行逐周期跟踪.
或者,使用Sui TypeScript SDK:
const rewards = await suiClient.getStakingRewards({ owner: address });
// Returns array of { epoch: number, amount: bigint }
这些数据是链上且不可变的——生成一个脚本将其导出到 CSV. 目前尚无第三方工具本身提供此功能.
使用Sui RPC API(suix_getStakes
) 获取每个时代的奖励.
####1. 通过 CLI 查询
sui client call \
--function get_stakes \
--package 0x3 \
--module sui_system \
--args 0xYOUR_STAKED_SUI_ID \
--gas-budget 10000000
####2. TypeScript 示例
import { SuiClient } from '@mysten/sui.js/client';
const client = new SuiClient({ url: 'https://fullnode.mainnet.sui.io' });
const stakes = await client.getStakes({ owner: '0xYOUR_ADDRESS' });
// Extract rewards by epoch
stakes.forEach((stake) => {
stake.stakes.forEach((stakedSui) => {
console.log('Epoch:', stakedSui.requestEpoch);
console.log('Rewards:', stakedSui.estimatedReward);
});
});
###重点注意事项
-requestEpoch
:赌注处于活动状态的时代.
-estimatedReward
:在那个时代获得的奖励.
-税收提示:产出中每个阶段的总奖励.
###方法 1:使用 Sui CLI
# 1. First, get your staked SUI object IDs
sui client objects --json --query '{"matchAll": [{"StructType": "0x3::staking_pool::StakedSui"}]}' | jq '.[].objectId'
# 2. Fetch rewards per epoch for each staked object
sui client call --package 0x3 --module staking_pool --function get_stakes \
--args <STAKED_SUI_OBJECT_ID> --json | jq '.effects.events[] | select(.stakingPoolEvent)'
这将返回带有纪元数字的奖励金额.
###方法 2:编程(TypeScript)
import { SuiClient } from '@mysten/sui.js/client';
const client = new SuiClient({ url: 'https://fullnode.mainnet.sui.io' });
async function getEpochRewards(stakedSuiId: string) {
const { data } = await client.queryEvents({
query: {
MoveEventType: '0x3::staking_pool::StakingRewardsDistributedEvent'
},
cursor: null,
limit: 100
});
return data.filter(event => event.parsedJson.staked_sui_id === stakedSuiId);
}
###方法 3:使用 SuiVision(高级视图)
- 前往 SuiVision
- 连接你的钱包 3.导航到 “质押” → “历史”
- 单击 “原始数据” 查看纪元级别的详细信息
###方法 4:直接 RPC 调用
curl -X POST https://fullnode.mainnet.sui.io \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "suix_queryEvents",
"params": [{
"MoveEventType": "0x3::staking_pool::StakingRewardsDistributedEvent"
}, null, 100, false],
"id": 1
}' | jq '.result.data[] | select(.parsedJson.staked_sui_id == "<YOUR_STAKED_OBJECT_ID>")'
要获取按时代划分的已获得的赌注奖励明细,请查询按sui_getEvents``StakeReward
事件类型和您的质押者地址筛选的 Sui RPC 端点. 这些StakeReward
事件包含每个分配的纪元号和奖励金额. 由于奖励仅在取消质押时发放,因此您必须解析事件0x3::sui_system::StakeReward
类型的历史事件并按时代对它们进行分组. 使用 Sui TypeScript 软件开发工具包来自动进行这种检索和分析. 区块探索器目前不提供每个纪元的细分信息,因此需要手动处理事件.
大多数探险家(Suivision、Suiscan)只显示总奖励,不显示每个时代的奖励.
选项: -手动跟踪 在每个周期的开始和结束时记录您的投注金额 → 计算奖励 = 结束-开始.
-使用 RPC 或索引器 高级选项. 查询 SUI_Getstakes、SUI_Getepochs,或者构建一个自定义索引器来跟踪变化.
-自定义脚本(推荐) 我可以帮你写一个 Python 脚本来获取每个周期的奖励并导出到 CSV.
你目前无法直接通过内置 RPC 或探索器(如 Suivision 或 Suiscan)检索每个时代的赌注奖励,这些奖励仅显示累积奖励. RPC suix_getStakes``suix_getStakesByIds
可以让你提取每笔赌注stakeRequestEpoch``stakeActiveEpoch
、本金和 estimatedReward
——但它们不会按时段细分奖励([QuickNode] [1]).
要获得每个周期的详细明细,你需要实现自己的索引逻辑:
首先致电suix_getStakes
获取您的权益ID和基础知识. 然后,通过比较各时期之间的赌注余额或使用已知的股份补贴和矿池奖励增长重现每个时代的奖励分配,来重构每个时代的获得的奖励.
您还可以使用 GraphQL API 查询该Epoch.totalStakeRewards
字段,以查看每个时期在全网络范围��分配的总奖励金额([Sui 文档] [2]).
通过建立一个索引器,读取每个周期的新检查点或事件,跟踪您的股份的活跃金额,并将其与该时代的补贴份额关联起来,您可以编制适合纳税申报或审计的每个时代的奖励明细.
简而言之:每个纪元的奖励没有标准的RPC,因此您需要通过赌注跟踪和纪元数据自行计算. 如果你想帮助设计一个 Rust 或 TS 索引器来计算它,请告诉我.
[1]: https://www.quicknode.com/docs/sui/suix_getStakes?utm_source=chatgpt.com “suix_Getstakes RPC 方法 | Sui Docs-Quicknode” [2]: https://docs.sui.io/references/sui-api/sui-graphql/reference/types/objects/epoch?utm_source=chatgpt.com “Epoch | Sui 文档”
你知道答案吗?
请登录并分享。
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.