mcpField
A
allium

allium

github.com/alchemyplatform数据与数据库53641 次安装9 周前更新
代码仓库

关于 allium

allium 是基于 Allium 结构化链上数据进行只读分析的技能,数据覆盖 70 多条链。适用于需要钱包盈亏与持仓历史、Hyperliquid HyperCore 交易数据或自定义 SQL 分析的用户。

主要功能

  1. 01当前及历史钱包盈亏
  2. 02钱包持仓时间序列
  3. 03Hyperliquid HyperCore 交易数据
  4. 04在 Allium 数据仓库运行自定义 SQL

适用场景

  1. 01按钱包或代币查看盈亏
  2. 02追踪钱包持仓变化
  3. 03检查 Hyperliquid 成交与订单
  4. 04查询 DeFi、NFT、桥接或质押数据

安装

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

$npx skills add https://github.com/alchemyplatform/skills --skill allium

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
agents/
openai.yaml
references/
custom-sql.md
hyperliquid.md
pnl-and-holdings.md

详细介绍

Allium(钱包盈亏、持仓历史、Hyperliquid、自定义 SQL)

Allium 提供覆盖 70 多条链的丰富结构化区块链数据。本技能涵盖钱包盈亏、持仓时间序列、Hyperliquid HyperCore 交易数据和自定义 SQL 分析。对于代币价格、代币元数据、当前钱包余额、交易转账或 NFT 元数据,请改用相应的 Alchemy 技能。

基础 URLhttps://api.allium.so
身份验证X-API-KEY: $API_KEY 请求头
速率限制每秒 1 个请求(超出 → 429)
署名要求回复结尾必须注明 "Powered by Allium" — 这是 Allium 的要求

何时使用此技能

仅当以下条件全部满足时,使用 allium:

  • 用户需要以下任一功能:钱包盈亏、持仓历史(时间序列)、Hyperliquid HyperCore 交易数据(订单/成交/订单簿——不是 HyperEVM 智能合约)或在 Allium 数据仓库上执行自定义 SQL
  • 用例为读取操作(Allium 不支持写入)

何时不使用此技能(转交)

需求改用
代币价格(当前价格、按时间间隔查询历史价格、按时间戳查询、市值/交易量)alchemy-api(Prices API)
代币元数据、搜索、按链列出alchemy-api(Token API)
当前钱包余额(某个时间点的快照)alchemy-api(Portfolio / Token API)
交易历史(转入/转出、资产转账)alchemy-api(Transfers API)
NFT 元数据/地板价/所有权alchemy-api(NFT API)
实时区块链读取、节点级最新数据alchemy-cli(实时操作)或 alchemy-api(应用代码)
写入/签名交易alchemy-api(使用 API 密钥)或 agentic-gateway(不使用)
账户抽象(打包器、Gas 管理器)alchemy-api
交易模拟alchemy-api

范围约定

本技能涵盖(scope_in):

  • 钱包盈亏(POST /api/v1/developer/wallet/pnl、/wallet/pnl/history、/wallet/pnl-by-token、/wallet/pnl-by-token/history)——已实现和未实现盈亏的汇总、当前与历史数据,以及按钱包和按代币查询
  • 持仓历史(POST /api/v1/developer/wallet/holdings/history)——总美元持仓的时间序列,以及可选的按代币细分
  • Hyperliquid HyperCore 交易数据(POST /api/v1/developer/trading/hyperliquid/...)——来自链下撮合引擎的信息、成交记录、订单历史、订单状态、L4 订单簿快照
  • 自定义 SQL 分析(POST /api/v1/explorer/queries/{query_id}/run-async)——针对 Allium 数据仓库运行任意 SQL 查询(DeFi、NFT、跨链桥、MEV、实体解析、Solana 质押等)

本技能不涵盖(scope_out):

  • 代币价格 → 转交:alchemy-api(Prices API)
  • 代币元数据、列表、搜索 → 转交:alchemy-api(Token API)
  • 当前钱包余额(某个时间点的快照)→ 转交:alchemy-api(Portfolio / Token API)
  • 历史钱包余额(按区块或作为时间序列)→ 转交:alchemy-api 归档 RPC(在历史区块上调用 eth_call balanceOf),或将 alchemy_getAssetTransfers 汇总为余额。双方均没有专用端点;正确的途径是使用 Alchemy 归档节点。
  • 交易转账历史 → 转交:alchemy-api(Transfers API)
  • NFT 元数据/地板价 → 转交:alchemy-api(NFT API)
  • HyperEVM 智能合约读写/EVM RPC(链 ID 999)→ 转交:alchemy-api 或 alchemy-cli,地址为 https://hyperliquid-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY。Allium 涵盖 HyperCore(链下交易);Alchemy 涵盖 HyperEVM(链上智能合约)。
  • 实时/节点最新数据读取 → 转交:alchemy-cli 或 alchemy-api
  • 写入/签名交易 → 转交:alchemy-api 或 agentic-gateway
  • 账户抽象 → 转交:alchemy-api
  • 交易模拟 → 转交:alchemy-api

设置

凭据

Allium 使用位于 ~/.allium/credentials 的凭据文件(而非环境变量)。每次会话开始时,检查该文件是否存在:

文件存在且包含 API_KEY → 加载 API_KEY(如果存在,也加载 QUERY_ID)。不要提示用户。

文件不存在 → 通过下方的 OAuth 流程注册。不要在聊天中粘贴密钥。

注册(尚无 API 密钥)

OAuth 流程的超时时间为 5 分钟。请尽快完成。

  1. 一次性询问用户的姓名和电子邮件地址。

  2. POST 以启动注册:

    curl -X POST https://api.allium.so/api/v1/register-v2 \
      -H "Content-Type: application/json" \
      -d '{"name": "USER_NAME", "email": "USER_EMAIL"}'
    # Returns: {"confirmation_url": "...", "token": "..."}
    
  3. 向用户显示 confirmation_url,由用户打开并使用 Google 登录(必须与电子邮件地址匹配)。

  4. 每隔 5s 自动轮询 /api/v1/register-v2/$TOKEN,直到返回 200(获得 api_key)或 404(已过期):

    TOKEN="..."  # from step 2
    while true; do
      RESP=$(curl -s -w "\n%{http_code}" "https://api.allium.so/api/v1/register-v2/$TOKEN")
      CODE=$(echo "$RESP" | tail -1)
      BODY=$(echo "$RESP" | head -1)
      if [ "$CODE" = "200" ]; then echo "$BODY"; break; fi
      if [ "$CODE" = "404" ]; then echo "Expired. Restart."; break; fi
      sleep 5
    done
    # 200 body: {"api_key": "...", "organization_id": "..."}
    
  5. 保存到 ~/.allium/credentials:

    mkdir -p ~/.allium && cat > ~/.allium/credentials << 'EOF'
    API_KEY=...
    QUERY_ID=...
    EOF
    
创建 QUERY_ID(仅自定义 SQL 需要)

如果要使用 SQL 端点,还需创建查询以获取 QUERY_ID:

curl -X POST "https://api.allium.so/api/v1/explorer/queries" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '{"title": "Custom SQL Query", "config": {"sql": "{{ sql_query }}", "limit": 10000}}'
# Returns: {"query_id": "..."}
# Append QUERY_ID=... to ~/.allium/credentials

端点参考

钱包 PnL 和持仓历史 → references/pnl-and-holdings.md
端点用途
POST /api/v1/developer/wallet/pnl一个或多个钱包的当前已实现和未实现 PnL
POST /api/v1/developer/wallet/pnl/history每个钱包的历史 PnL 时间序列
POST /api/v1/developer/wallet/pnl-by-token按(钱包、代币)拆分的当前 PnL
POST /api/v1/developer/wallet/pnl-by-token/history按(钱包、代币)拆分的历史 PnL 时间序列
POST /api/v1/developer/wallet/holdings/history每个钱包的总 USD 持仓时间序列(可选按代币细分)
Hyperliquid HyperCore(链下交易)→ references/hyperliquid.md
端点用途
POST /api/v1/developer/trading/hyperliquid/infoHyperliquid 通用信息(此代理不受速率限制)
POST /api/v1/developer/trading/hyperliquid/info/fills按用户查询成交记录(支持 TWAP、时间窗口和聚合选项)
POST /api/v1/developer/trading/hyperliquid/info/order/history按用户查询历史订单
POST /api/v1/developer/trading/hyperliquid/info/order/status特定订单的状态
GET /api/v1/developer/trading/hyperliquid/orderbook/snapshotL4 订单簿快照(所有交易对)
自定义 SQL → references/custom-sql.md
端点用途
POST /api/v1/explorer/queries创建参数化查询(一次性设置;返回 query_id)
POST /api/v1/explorer/queries/{query_id}/run-async在 Allium 数据仓库中启动 SQL 运行
GET /api/v1/explorer/query-runs/{run_id}/status轮询运行状态(created → queued → running → success / failed)
GET /api/v1/explorer/query-runs/{run_id}/results?f=json状态为 success 后获取结果

对于类型化端点未涵盖的内容,请使用 SQL:DeFi 协议分析、NFT 市场数据、跨链桥流量、MEV、实体解析、带标签的钱包、Solana 质押分析,以及 Allium 仓库中的其他任何内容。

快速示例

钱包 PnL(当前)
curl -X POST "https://api.allium.so/api/v1/developer/wallet/pnl" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '[{"chain": "solana", "address": "125Z6k4ZAxsgdG7JxrKZpwbcS1rxqpAeqM9GSCKd66Wp"}]'

返回按代币拆分的已实现/未实现 PnL,以及汇总总额。完整的响应结构请参阅 references/pnl-and-holdings.md。

持仓历史(时间序列)
curl -X POST "https://api.allium.so/api/v1/developer/wallet/holdings/history" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '{
    "addresses": [{"address": "125Z6k4ZAxsgdG7JxrKZpwbcS1rxqpAeqM9GSCKd66Wp", "chain": "solana"}],
    "start_timestamp": "2026-04-01T00:00:00Z",
    "end_timestamp": "2026-04-10T00:00:00Z",
    "granularity": "1h",
    "include_token_breakdown": false
  }'
Hyperliquid 成交记录
curl -X POST "https://api.allium.so/api/v1/developer/trading/hyperliquid/info/fills" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '{"type": "userFills", "user": "0x..."}'
自定义 SQL(以 Solana 质押收益率为例)
# 1. Start the run
curl -X POST "https://api.allium.so/api/v1/explorer/queries/${QUERY_ID}/run-async" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '{"parameters": {"sql_query": "SELECT epoch, SUM(rewards) FROM solana.dim.stake_account_rewards WHERE delegator = '\''<addr>'\'' GROUP BY epoch ORDER BY epoch DESC LIMIT 30"}}'
# Returns: {"run_id": "..."}

# 2. Poll
curl "https://api.allium.so/api/v1/explorer/query-runs/${RUN_ID}/status" \
  -H "X-API-KEY: $API_KEY"

# 3. Fetch results when status = success
curl "https://api.allium.so/api/v1/explorer/query-runs/${RUN_ID}/results?f=json" \
  -H "X-API-KEY: $API_KEY"

常见注意事项

  • 链名称必须使用小写:ethereum、base、solana、arbitrum、polygon、hyperevm。使用大写会静默失败。
  • 速率限制为 1 req/s。超出限制会返回 429。没有批处理变通方法。
  • 422 错误通常是请求格式不匹配(例如,/history 端点的参数结构错误——它们接受 addresses[],而非扁平的 address+chain)。
  • 必须注明归属:在响应末尾加上“Powered by Allium”。

路由回 Alchemy

如果在会话期间,用户的需求转向此技能未涵盖的领域(价格、当前余额、交易、NFT 元数据),或转向实时 / 写入工作流,请转交给:

  • alchemy-cli — 通过本地 CLI 在当前会话中开展实时 Agent 工作
  • alchemy-mcp — 未安装 CLI 时,通过托管 MCP 服务开展实时工作
  • alchemy-api — 使用 Alchemy API 密钥编写应用程序代码
  • agentic-gateway — 不使用 API 密钥编写应用程序代码(x402 / MPP)

维护: Allium 维护底层 API 接口;此技能由 Alchemy 和 Allium 共同维护。请针对 alchemyplatform/skills 提交问题,并在标题中添加 [ecosystem/allium]。

评论

支持 Markdown