build-data-pipeline
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Pick a brand name, color palette, or typography for a Sui product. Use when the user wants to name or brand a Sui project.
Build an AI agent that signs Sui transactions or runs onchain actions. Use when the user wants an AI agent on Sui.
Build a mobile Sui app with React Native or the Sui Mobile SDK. Use when the user wants iOS, Android, or mobile Sui flows.
Pair with a coding agent to build a Sui MVP step by step. Use when the user wants to build the MVP iteratively with an agent.
Author Sui Move modules and packages with a senior Move dev as your pair. Use when the user wants to write, build, author, add, or scaffold Move code, smart contracts, or Sui programs at the module or function level, in any phrasing.
Integrate Cetus AMM on Sui (swaps, liquidity, concentrated pools). Use when the user mentions Cetus.
| name | build-data-pipeline |
| description | Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data. |
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track build-data-pipeline build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track build-data-pipeline build started >/dev/null 2>&1 &
true
If TEL_PROMPTED is no, before doing real work, ask the user:
Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in
~/.suiperpower/config.json.A) Sure, anonymous B) No thanks
Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.
Helps the user read, index, and monitor on-chain Sui data. Picks the right data access method (GraphQL RPC, event polling, custom indexer, or gRPC), implements the queries or indexer, and verifies that real data comes back before declaring done.
find-next-sui-idea first.scaffold-project first.build-with-move.ptb-composer.deepbook-orderbook (it has DeepBook-specific queries).If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
.suiperpower/build-context.md from scaffold-project. Read it if present.If unclear, interview the user for:
Query code or indexer implementation matching the chosen method.
For GraphQL: working .graphql queries or inline TS query strings.
For event polling: a polling loop with cursor tracking and persistence.
For custom indexer: Rust project scaffolded with sui-indexer-alt-framework.
Append to .suiperpower/build-context.md:
## build-data-pipeline session, <timestamp>
- method: <graphql | event-polling | custom-indexer | grpc>
- data targets: <what is being indexed/queried>
- network: <mainnet | testnet | devnet>
- polling interval: <if applicable>
- third-party services: <if applicable>
- open issues: <list>
Context gathering
.suiperpower/build-context.md if it exists.Pick the data access method
Implement queries
https://graphql.testnet.sui.io/graphql (or mainnet). Respect the limits: 5KB query size, 40s timeout, 300 nodes max, 50 items per page, cursor-based pagination.queryEvents with cursor tracking, descending order, and a persistence mechanism for the last-seen cursor.sui-indexer-alt-framework, configure the PostgreSQL schema, and write the pipeline handler.references/data-access-methods.md for code patterns.Add event polling if monitoring is needed
Test with real data
Optimize and harden
references/data-pipeline-pitfalls.md and fix any matching issues.Writeback
.suiperpower/build-context.md.Closing handoff
.suiperpower/intent.md exists and the session was non-trivial (new module, new sponsor integration, or material changes to public functions), recommend verify-against-intent as the next step so drift is caught before shipping.intent.md exists and the session was non-trivial, surface that gap once: offer clarify-intent to backfill, do not force it.| Use case | Method | When to pick |
|---|---|---|
| Read object state, balances, transaction history | GraphQL RPC | Default for most read-only queries. Best for hackathons. |
| React to Move events in near-real-time | Event polling (queryEvents) | Simplest real-time option. Good up to moderate event volume. |
| High-volume historical indexing, complex joins | Custom indexer (sui-indexer-alt-framework) | When you need PostgreSQL-backed analytics or full history. Rust + PostgreSQL required. |
| DeFi feed, exchange integration, low-latency streaming | gRPC API | Replacing JSON-RPC. Best for high-throughput, latency-sensitive consumers. |
| Quick prototyping without running infrastructure | Third-party (BlockVision, ZettaBlock) | When you want SQL or REST without running your own infra. |
Notes:
subscribeEvent is also deprecated. Use queryEvents polling instead.Before reporting done, the skill asks itself the following and refuses to declare success if any answer is no:
suix_* calls, no WebSocket subscribeEvent)?If any answer is no, the skill reports the gap and works through it before claiming the pipeline is complete.
On-demand references (load when relevant to the user's question):
references/data-access-methods.md: All 4 data access methods with code examples, endpoints, and limits.references/data-pipeline-pitfalls.md: Common mistakes with Sui data pipelines and how to avoid them.External docs (fetch at runtime for the latest API surface):
claude "/suiper:build-data-pipeline <your message>"codex "/build-data-pipeline <your message>"grok, then /build-data-pipeline <your message> in the session~/.cursor/rules/build-data-pipeline.mdc and reference it.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.