mcpField
D
datasets

datasets

github.com/goldsky-io数据与数据库124.1k 次安装今天更新
代码仓库

关于 datasets

Goldsky 区块链数据集参考技能,面向查找 Turbo 可用数据集并配置数据源的用户。它整理链前缀、数据类型和查询命令,并提示如何核实数据集版本与可用范围。

主要功能

  1. 01多链前缀与数据集类型索引
  2. 02数据集查询与验证命令
  3. 03常见数据集及用途参考
  4. 04数据集字段结构说明

适用场景

  1. 01为指定链选择转账或交易数据集
  2. 02核实数据集版本和可用范围
  3. 03排查链前缀及字段选择错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/goldsky-io/goldsky-agent --skill datasets

安装后在 Claude Code 中输入/datasets确认已加载。

附带文件data/chain-prefixes.jsonevals/trigger-eval.json

详细介绍

Goldsky 数据集参考

Turbo 管道中可用的区块链数据集参考。

对于快速查询数据集的问题(例如“Solana 转账应该用哪个数据集?”),请直接回答:确定链前缀(见下文“常用链前缀”),确定数据集类型(见“常见数据集”),然后返回类似这样的 YAML 片段:

sources:
  my_source:
    type: dataset
    dataset_name: <chain>.<dataset>
    version: 1.0.0
    start_at: earliest

提示: 使用 goldsky dataset get <chain>.<dataset> --outputFormat json 验证数据集是否存在——该命令会返回确切的 slug、版本、架构和 isTurboOnly(false = Turbo 和 Mirror 均可使用;true = 仅限 Turbo)。如需浏览或搜索,请运行 goldsky dataset list --output json(可选添加 --group <chain>;列表是精简索引,不包含 isTurboOnly——请使用 dataset get 获取该信息)。goldsky turbo validate file.yaml 用于验证整个 Turbo 管道配置,不是用于检查数据集是否存在(这是 Turbo 专用功能,需要 turbo 二进制文件)。

⚠️ 不带任何标志的普通 goldsky dataset list 是交互式选择器,只能在真实终端中运行——在 Agent/CI/管道传输环境中,它完全不会输出任何内容。务必传入 --output json(或 --group)。对于不支持这些标志的旧版 CLI,请改用公开的只读端点:curl -s https://api.goldsky.com/api/public/datasets/v1。


数据集参考文件

链前缀和链 ID 信息位于 data/ 文件夹中。

文件内容
chain-prefixes.json所有链前缀、链 ID 和常见错误

数据位置: data/(相对于此技能目录)

此技能未固定数据集版本。 数据集修订时,版本号会发生变化,因此请使用 goldsky dataset get <name> --outputFormat json 确认确切版本,而不要依赖静态列表。下方的数据集类型和架构表是稳定的参考;其中的任何版本号都应视为待验证的起始参考,而非权威信息。


快速参考

操作命令备注
验证数据集goldsky dataset get <name> --outputFormat json首选——slug、版本、架构、isTurboOnly
搜索数据集goldsky dataset list --output json | grep -i name非交互式
列出所有数据集goldsky dataset list --output json普通 dataset list 仅限 TTY——务必使用 --output json

常见数据集

所需数据数据集示例
代币转账(ERC-20)<chain>.erc20_transfersbase.erc20_transfers (v1.2.0)
NFT 转账(ERC-721)<chain>.erc721_transfersethereum.erc721_transfers (v1.0.0)
交易<chain>.raw_transactionsethereum.raw_transactions (v1.0.0)
事件日志<chain>.raw_logsbase.raw_logs (v1.0.0)
Solana 代币solana.token_transfersv1.0.0
Bitcoin 交易bitcoin.raw.transactionsv1.0.0
Stellar 转账stellar_mainnet.transfersv1.1.0

重要: 使用 raw_transactions,而不是 transactions


常见的链前缀

链前缀备注
Ethereumethereum
Basebase
Polygonmatic不是 polygon
Arbitrumarbitrum
Optimismoptimism
BSCbsc
Avalancheavalanche
Solanasolana使用 start_block,而非 start_at
Bitcoinbitcoin.raw与 EVM 一样使用 start_at
Stellarstellar_mainnet与 EVM 一样使用 start_at
Suisui与 EVM 一样使用 start_at
NEARnear与 EVM 一样使用 start_at
Starknetstarknet与 EVM 一样使用 start_at
Fogofogo与 EVM 一样使用 start_at

完整列表及链 ID 请参阅 data/chain-prefixes.json。


常见数据集类型

EVM 链
数据集类型描述用途
blocks含元数据的区块头区块浏览器、时间分析
raw_transactions交易数据钱包活动、Gas 分析
raw_logs原始事件日志自定义事件筛选
raw_traces内部交易跟踪记录MEV 分析、合约交互
erc20_transfers同质化代币转账代币跟踪、DeFi 分析
erc721_transfersNFT 转账NFT 市场、所有权跟踪
erc1155_transfers多代币转账游戏、多代币标准

重要: 使用 raw_transactions,而非 transactions。使用 raw_logs,而非 logs(不过,某些链会将 logs 作为别名)。

没有可供使用的 decoded_logs 源数据集。 如需解码合约事件,请从 <chain>.raw_logs 获取数据,并在 SQL 转换中通过 _gs_log_decode(_gs_fetch_abi(<explorer-url>, <source>), topics, data) 进行解码。完整模式请参阅 /turbo-transforms。

Solana
数据集类型描述用途
blocks含出块者信息的区块数据链分析
transactions含余额的交易数据钱包活动
transactions_with_instructions交易 + 嵌套指令多指令分析
instructions单条指令特定程序分析
token_transfersSPL 代币转账代币跟踪
native_balancesSOL 余额变化巨鲸跟踪
token_balancesSPL 代币余额变化投资组合跟踪
rewards验证者奖励质押分析
Bitcoin
数据集类型描述用途
bitcoin.raw.blocks区块数据(哈希、难度、大小)网络分析
bitcoin.raw.transactions交易(输入、输出、金额)支付跟踪
Stellar

所有数据集均使用版本 1.1.0:

数据集类型描述用例
stellar_mainnet.transactions所有网络交易账户监控
stellar_mainnet.transfers所有转账事件资产追踪
stellar_mainnet.events所有事件(合约 + 操作)合约监控
stellar_mainnet.operations交易中的操作操作追踪
stellar_mainnet.ledger_entries账本状态变更状态分析
stellar_mainnet.ledgers账本元数据网络分析
stellar_mainnet.balances账户余额变更余额追踪
Sui
数据集类型描述用例
sui.checkpoints检查点数据链分析
sui.transactions交易数据活动监控
sui.eventsMove 合约事件dApp 事件追踪
sui.packages已部署的 Move 包包发现
sui.epochs含验证者的 Epoch 数据质押/验证者分析
NEAR
数据集类型描述用例
near.receipts执行回执合约交互追踪
near.transactions已签名交易活动监控
near.execution_outcomes执行结果成功/失败分析
Starknet
数据集类型描述用例
starknet.blocks区块数据链分析
starknet.transactions交易数据活动监控
starknet.events合约事件dApp 事件追踪
starknet.messagesL1↔L2 消息跨链桥监控
Fogo
数据集类型描述用例
fogo.transactions_with_instructions含指令的交易全面活动追踪
fogo.rewards验证者奖励质押分析
fogo.blocks区块数据链分析

数据集架构

来源: docs.goldsky.com。请勿使用此处未列出的字段名称——运行 goldsky dataset get <chain>.<dataset> --outputFormat json 查看未知架构。

Solana
solana.transactions
字段类型说明
idstring
indexinteger区块中的交易位置
block_slotintegerslot 编号
block_hashstring
block_timestamptimestamp
signaturestring交易签名
recent_block_hashstring
feeinteger单位为 lamports
statusinteger1 = 成功
errstring | null失败时的错误
accountsstring[]涉及的所有账户
balance_changesobject[]{account, before, after},单位为 lamports
log_messagesstring[]程序执行日志
compute_units_consumedinteger

Solana 交易没有 from_address 或 to_address ——请改用 accounts 数组。

solana.transactions_with_instructions

包含 solana.transactions 中的所有字段,此外还有:

字段类型说明
pre_token_balancesobject[]交易前的代币余额
post_token_balancesobject[]交易后的代币余额
instructionsobject[]见下文

指令对象字段: id、index、parent_index、block_slot、block_timestamp、block_hash、tx_signature、tx_fee、tx_index、program_id、data(base58)、accounts(string[])、instruction_type

solana.instructions
字段类型说明
idstring
block_slotinteger
block_hashstring
block_timestamptimestamp
tx_signaturestring交易签名
indexinteger交易中的位置
parent_indexinteger | null用于内部指令
accountsstring[]指令涉及的账户
datastringbase58 编码
programstring程序名称/标签
program_idstring执行程序的地址
instruction_typestring解码后的指令类型
paramsobject解码后的指令参数
parsedobject解析后的载荷
solana.token_transfers
字段类型说明
idstring
token_mint_addressstring铸币地址
from_token_accountstring源代币账户
to_token_accountstring目标代币账户
amountnumber原始数量
decimalsinteger代币精度
block_slotinteger
block_timestamptimestamp
signaturestring交易签名
solana.native_balances
字段类型说明
idstring
block_slotintegerslot 编号
block_hashstring
block_timestamptimestamp
tx_indexinteger区块中的交易位置
signaturestring交易签名
accountstring账户公钥
amount_beforeintegerlamports
amount_afterintegerlamports
_gs_opstringGoldsky 内部操作类型
solana.blocks
字段类型说明
idstring
slotinteger
parent_slotinteger
hashstring
timestamptimestamp
heightinteger
previous_block_hashstring
transaction_countinteger
leaderstring验证者公钥
leader_rewardintegerlamports
skippedboolean
solana.rewards
字段类型说明
idstring
block_slotinteger
block_hashstring
block_timestamptimestamp
pub_keystring验证者公钥
lamportsinteger奖励数量
post_balanceinteger奖励后的余额
reward_typestring
commissioninteger
solana.token_balances

架构未完整记录 ——请勿猜测字段名称。使用 goldsky dataset get solana.token_balances --outputFormat json 检查。


EVM 链
<chain>.raw_logs / <chain>.logs
字段类型说明
id字符串
block_number整数
block_hash字符串
transaction_hash字符串
transaction_index整数
log_index整数
address字符串合约地址(小写)
data字符串十六进制编码的事件数据
topics字符串以逗号分隔的十六进制主题哈希
block_timestamp整数Unix 时间戳

topics 是以逗号分隔的字符串,不是数组。Topic 0 是事件签名哈希。

<chain>.raw_transactions
字段类型说明
id字符串
hash字符串
nonce整数
block_hash字符串
block_number整数
transaction_index整数
from_address字符串
to_address字符串
value十进制数以 wei 为单位的 ETH 数值
gas十进制数
gas_price十进制数
input字符串十六进制 calldata
transaction_type整数
block_timestamp整数Unix 时间戳
receipt_gas_used十进制数
receipt_contract_address字符串 | null合约创建时提供
receipt_status整数1 = 成功
receipt_effective_gas_price十进制数

L2 链还包含:receipt_l1_fee、receipt_l1_gas_used、receipt_l1_gas_price、receipt_l1_fee_scalar

<chain>.blocks
字段类型说明
id字符串
number整数区块编号
hash字符串
parent_hash字符串
miner字符串
gas_limit整数
gas_used整数
timestamp整数Unix 时间戳
transaction_count整数
base_fee_per_gas整数
difficulty双精度浮点数
<chain>.erc20_transfers
字段类型说明
id字符串
sender字符串发件地址
recipient字符串收件地址
amount十进制数代币数量
address字符串代币合约地址
block_number整数
block_timestamp整数Unix 时间戳
block_hash字符串
transaction_hash字符串
transaction_index整数
log_index整数
<chain>.erc721_transfers
字段类型说明
id字符串
from_address字符串
to_address字符串
token_id十进制数
address字符串NFT 合约地址
block_number整数
block_timestamp整数Unix 时间戳
block_hash字符串
transaction_hash字符串
transaction_index整数
log_index整数

数据集名称格式

所有数据集都遵循以下格式:<chain_prefix>.<dataset_type>

示例:

  • ethereum.erc20_transfers - Ethereum 主网上的 ERC-20 转账
  • base.logs - Base 上的所有事件日志
  • matic.blocks - Polygon 区块数据
  • solana.token_transfers - Solana 上的 SPL 代币转账

查找数据集版本

数据集采用版本管理。要查找可用版本:

goldsky dataset get base.erc20_transfers --outputFormat json

常见版本:

  • 1.0.0 - 初始版本
  • 1.2.0 - 增强型架构(ERC-20 转账中常见)

如不确定,请使用 goldsky dataset get <name> --outputFormat json 显示的最新版本。


常见发现模式

“我想追踪 Base 上的 USDC 转账”
  1. 数据集:base.erc20_transfers
  2. 在流水线转换中按合约地址筛选:
transforms:
  usdc_only:
    type: sql
    primary_key: id
    sql: |
      SELECT * FROM source_name
      WHERE address = lower('0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913')
“我想查看 Ethereum 上的所有 NFT 活动”

数据集:ethereum.erc721_transfers

“我想监控特定智能合约”
  1. 来源:<chain>.raw_logs,在来源筛选器中按合约地址筛选
  2. 要解码事件:添加 SQL 转换,调用 _gs_log_decode(_gs_fetch_abi(<explorer-url>, <source>), topics, data) AS decoded,然后在下游使用 WHERE decoded.event_signature = '<EventName>(<types>)' 进行筛选。切勿在来源筛选器中使用 topic0 哈希。
“我需要多链数据”

在你的管道中使用多个数据源:

sources:
  eth_transfers:
    type: dataset
    dataset_name: ethereum.erc20_transfers
    version: 1.0.0
    start_at: latest
  base_transfers:
    type: dataset
    dataset_name: base.erc20_transfers
    version: 1.2.0
    start_at: latest

故障排除

未找到数据集
Error: Source 'my_source' references unknown dataset 'invalid.dataset'

解决方法:

  1. 检查链前缀是否正确(例如,使用 matic,而不是 polygon)
  2. 检查数据集类型是否存在(例如,使用 erc20_transfers,而不是 erc20)
  3. 运行 goldsky dataset list --output json,查看所有可用选项
未列出链

如果在上方的表格中找不到某条链:

goldsky dataset list --output json | grep -i "<chain_name>"

有些链使用不直观的前缀(例如,Polygon 使用 matic)。

版本不匹配
Error: Version '2.0.0' not found for dataset 'base.erc20_transfers'

**解决方法:**检查可用版本:

goldsky dataset get base.erc20_transfers --outputFormat json

使用输出中存在的版本。


相关内容

  • /turbo-builder — 使用这些数据集构建管道的交互式向导

评论

支持 Markdown