用途:该技能指导你为 SQD Portal Stream API 构造 EVM 事件日志(logs)查询,常见于追踪 ERC20 Transfer、监控 DeFi 协议事件(Swap、Deposit、Withdraw 等)、按合约定位事件、按索引参数过滤历史链上活动。
主要能力:Portal Stream API 通过 POST JSON 请求发往 /datasets/{dataset-name}/stream。查询体包含 type(EVM 链填 "evm")、fromBlock/toBlock(区块范围,必填)、logs(过滤对象数组)与 fields(返回字段)。过滤字段中 address、topic0、topic1/2/3 均为索引,查询更快;data 为非索引字段,不能用于过滤。topic0 始终是事件签名哈希,topic1-3 按声明顺序对应 indexed 参数,非索引参数进入 data。地址写入 topic 时需补齐为 32 字节。多个过滤对象之间为 OR 逻辑。
使用方式:已知合约地址时优先加 address 过滤(约快 10-100 倍),再加 topic0 定位具体事件,必要时用 topic1-3 收窄,并尽量使用较窄的区块范围。响应为 JSON Lines,每行一个 JSON 对象,首行为区块头,后为 logs 数组。若环境提供 Portal MCP 工具,可先用 portal_query_logs 快速查询,或用 portal_decode_logs 自动解码已知事件、portal_count_events 仅计数以减少响应体积;复杂过滤、自定义字段或流式输出大量数据时再用原始 API。
限制与注意事项:不能按 data 过滤,只能先取回再在客户端筛选;topic 中的地址必须补零至 32 字节;事件签名哈希需用无空格的精确类型计算,否则得到错误哈希;避免无过滤条件、从区块 0 开始的过宽查询;数据集名称需正确(如 arbitrum-one 而非 arbitrum)。在构建索引器前,建议先向合约查询实际 topic0 并与源码交叉验证,因为代理合约、Diamond 代理(EIP-2535)或升级后事件签名变化可能导致计算出的哈希与链上不符。
适用场景:链上数据分析、代币转账追踪、DeFi 协议事件监控、历史活动统计。
资料中未提供具体收费、价格与平台限制信息。