用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/duneanalytics/spellbook --skill catalyst-gas-and-transfers命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Add a DEX project to dex.trades for a chain (sources, base trades, chain unions, seed, dex_info)
Set up new chain foundational metadata (evms_info, prices, base sources, evms_blockchains_list)
Designs and runs DuneSQL regression queries comparing CI tables (`dune.<schema>.<table>`) to production spells after pipeline-only dbt changes; after SQL is tailored to the to execute queries and validate parity. Use for prod vs CI regression, lineage parity checks, or row/metric validation when data should not drift; invoke manually per branch—not on every edit.
基于 SOC 职业分类
正在显示 SKILL.md
| name | catalyst-gas-and-transfers |
| description | Add gas fees and token transfer models for a new chain (hourly_spellbook + tokens) |
| disable-model-invocation | true |
sets up gas fees and token transfers for a new chain.
when to use: use when adding gas and token transfer models for a chain that already has foundational metadata.
<issue_id>: linear issue id (e.g., CUR2-547)<chain>: chain name (e.g., monad)/catalyst-gas-and-transfers CUR2-547 monad
dune mcp server: user-dune-mcp.
for ad-hoc sql, prefer temporary execution if the dune mcp supports it in-session. only create saved/throwaway queries with createDuneQuery when temporary execution is not available or when a later step explicitly needs a query_id.
fallback sequence when query_id is required: create query with createDuneQuery (pass sql in query) -> run with executeQueryById (using returned query_id) -> fetch rows with getExecutionResults (using returned execution_id).
dbt_subprojects/dex/models/trades/kaia/, .../mezo/). ordering: mimic existing; if unclear, append. swap chain name in: file paths, model names, schema entries, blockchain values.select * from dune.blockchains where name = '<chain>' (substitute <chain> with the chain name). extract: chain_id, name (display name), token_address (native token).select min(time) from <chain>.blocks where number <> 0 (substitute <chain>).main is up to date: fetch latest, pull if behind, exit if diverged.<issue_id>-<chain>-gas-and-transfers, create off main, checkout, warn if exists. don't commit/push anything.token_address: run this sql via the ad-hoc sql sequence above: select * from dune.blockchains where name = '<chain>' (substitute <chain>).add gas fees model
<chain>.transactions for sample gas fees setupdbt_subprojects/hourly_spellbook/models/_sector/gas/fees/<chain>/gas_<chain>_fees.sqlevm_l1_gas_fees macroop_stack_gas_fees or arbitrum_orbit_stack_gas_feesadd gas schema
dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/<chain>/gas_<chain>_schema.ymladd gas seed data
dbt_subprojects/hourly_spellbook/seeds/_sector/gas/evm_gas_fees.csvquery_id: 6162940, query_parameters: [{"key":"chain","value":"<chain>","type":"text"}] (substitute <chain>) for test entriesadd to gas fees union
dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/gas_fees.sql<chain> to both chain listscreate transfer models
dbt_subprojects/tokens/models/transfers_and_balances/<chain>/ with:
tokens_<chain>_base_transfers.sqltokens_<chain>_transfers.sqltokens_<chain>_net_transfers_daily.sqltokens_<chain>_net_transfers_daily_asset.sql
native_contract_address = var('ETH_ERC20_ADDRESS') or chain-specifictokens_<chain>_transfers_from_traces.sqltokens_<chain>_transfers_from_traces_base.sqltokens_<chain>_transfers_from_traces_base_wrapper_deposits.sqladd transfers schema
dbt_subprojects/tokens/models/transfers_and_balances/<chain>/_schema.ymladd to transfers unions
dbt_subprojects/tokens/models/transfers_and_balances/tokens_transfers.sqldbt_subprojects/tokens/models/transfers_and_balances/tokens_net_transfers_daily.sqldbt_subprojects/tokens/models/transfers_and_balances/tokens_net_transfers_daily_asset.sqladd to transfers macro
dbt_subprojects/tokens/macros/transfers_from_traces/transfers_from_traces_exposed_blockchains_macro.sqlfinal checks
uv sync --locked, then run uv run dbt compile in dbt_subprojects/tokens and in dbt_subprojects/hourly_spellbook. Fix any errors.