API Architect
curiositech/some_claude_skills
Expert API designer for REST, GraphQL, gRPC architectures. An agent skill from curiositech/some_claude_skills.
Guide to building blockchain data indexes with The Graph — subgraph architecture, schema design, mapping handlers, deployment, and querying.
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nirholas/three.ws subgraph-development-guide --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .claude/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .claude/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guideType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nirholas/three.ws subgraph-development-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .agents/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .agents/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .agents/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nirholas/three.ws subgraph-development-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .cursor/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .cursor/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nirholas/three.ws.git --path data/skills/development/subgraph-development-guide--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nirholas/three.ws subgraph-development-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .gemini/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .gemini/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nirholas/three.ws subgraph-development-guideInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .github/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .github/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .github/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nirholas/three.ws --skill subgraph-development-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nirholas/three.ws subgraph-development-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/data/skills/development/subgraph-development-guide .opencode/skills/subgraph-development-guide && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "subgraph-development-guide" agent skill from https://github.com/nirholas/three.ws/tree/main/data/skills/development/subgraph-development-guide into .opencode/skills/subgraph-development-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subgraph-development-guide", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
subgraph-development-guideGuide to building blockchain data indexes with The Graph — subgraph architecture, schema design, mapping handlers, deployment, and querying.
Subgraph Development Guide is an agent skill from nirholas/three.ws. Guide to building blockchain data indexes with The Graph — subgraph architecture, schema design, mapping handlers, deployment, and querying. Covers GraphQL APIs for DEX data, token transfers, and DeFi protocol events. Use when explaining blockchain indexing or building custom data pipelines.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering GraphQL, Database schema design and Data pipelines and ETL. It works with GraphQL. The repository describes itself as: Open-source platform for 3D AI agents. Turn text or a photo into a rigged, animated GLB avatar, give it an LLM brain, memory and a wallet, and embed it anywhere with one web… The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 238ef60. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmdocker-composeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
thegraph.comgithub.comarbiscan.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Subgraph Development Guide loads about 2.1k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 419 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nirholas/three.ws at commit 238ef60, republished under its MIT licence (© nirholas). 419 words, ~2,110 tokens.
.claude/skills/subgraph-development-guide/SKILL.md (or your agent's skills folder).The Graph is the indexing protocol for blockchain data. Subgraphs turn raw blockchain events into queryable GraphQL APIs. This guide covers how they work and how to build them.
Reading blockchain data directly is painful:
Subgraphs listen to blockchain events, process them, and store structured data:
Blockchain Events → Subgraph Indexer → GraphQL API
(Swap, Transfer, (Processes, (Fast queries,
Mint, Burn) aggregates) relationships)┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 1. Schema │ │ 2. Mappings │ │ 3. Manifest │
│ (GraphQL types) │ │ (Event handlers)│ │ (subgraph.yaml) │
│ │ │ │ │ │
│ type Token { │ │ handleSwap(e) { │ │ dataSources: │
│ id: ID! │ │ // process │ │ - name: Pool │
│ symbol: String│ │ // and save │ │ source: │
│ volume: BigInt│ │ } │ │ abi: Pool │
│ } │ │ │ │ address: │
└─────────────────┘ └─────────────────┘ └─────────────────┘| File | Purpose |
|---|---|
schema.graphql | Define your data model (entities) |
src/mapping.ts | Event handler functions (AssemblyScript) |
subgraph.yaml | Manifest — which contracts, events, and chains to index |
type Token @entity {
id: ID! # Contract address
symbol: String!
name: String!
decimals: Int!
totalSupply: BigInt!
transferCount: BigInt!
holderCount: BigInt!
}
type Transfer @entity {
id: ID! # tx hash + log index
token: Token!
from: Bytes!
to: Bytes!
value: BigDecimal!
timestamp: BigInt!
blockNumber: BigInt!
}
type Account @entity {
id: ID! # Wallet address
balances: [AccountBalance!]! @derivedFrom(field: "account")
}
type AccountBalance @entity {
id: ID! # account-token
account: Account!
token: Token!
balance: BigDecimal!
}specVersion: 0.0.5
schema:
file: ./schema.graphql
dataSources:
- kind: ethereum
name: USDC
network: arbitrum-one
source:
address: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
abi: ERC20
startBlock: 100000000
mapping:
kind: ethereum/events
apiVersion: 0.0.7
language: wasm/assemblyscript
entities:
- Token
- Transfer
- Account
abis:
- name: ERC20
file: ./abis/ERC20.json
eventHandlers:
- event: Transfer(indexed address,indexed address,uint256)
handler: handleTransfer
file: ./src/mapping.tsimport { Transfer as TransferEvent } from "../generated/USDC/ERC20"
import { Token, Transfer, Account, AccountBalance } from "../generated/schema"
import { BigInt, BigDecimal } from "@graphprotocol/graph-ts"
export function handleTransfer(event: TransferEvent): void {
// Load or create token
let token = Token.load(event.address.toHexString())
if (token == null) {
token = new Token(event.address.toHexString())
token.symbol = "USDC"
token.name = "USD Coin"
token.decimals = 6
token.totalSupply = BigInt.fromI32(0)
token.transferCount = BigInt.fromI32(0)
token.holderCount = BigInt.fromI32(0)
}
token.transferCount = token.transferCount.plus(BigInt.fromI32(1))
token.save()
// Create transfer entity
let transfer = new Transfer(
event.transaction.hash.toHexString() + "-" + event.logIndex.toString()
)
transfer.token = token.id
transfer.from = event.params.from
transfer.to = event.params.to
transfer.value = event.params.value.toBigDecimal().div(
BigDecimal.fromString("1000000") // 6 decimals
)
transfer.timestamp = event.block.timestamp
transfer.blockNumber = event.block.number
transfer.save()
}Top tokens by transfer volume:
{
tokens(first: 10, orderBy: transferCount, orderDirection: desc) {
id
symbol
transferCount
}
}Recent large transfers:
{
transfers(
first: 20
orderBy: timestamp
orderDirection: desc
where: { value_gt: "100000" }
) {
from
to
value
timestamp
token { symbol }
}
}Account balances:
{
account(id: "0x1234...") {
balances {
token { symbol }
balance
}
}
}| Network | Hosted Service | Decentralized |
|---|---|---|
| Ethereum | api.thegraph.com/subgraphs/name/... | gateway.thegraph.com/api/... |
| Arbitrum | Same pattern | Same pattern |
| Base/Optimism | Same pattern | Same pattern |
| Subgraph | What It Indexes | Useful For |
|---|---|---|
| Uniswap V3 | Pools, swaps, liquidity positions | DEX price data, volume |
| Aave V3 | Deposits, borrows, liquidations | Lending market data |
| Balancer V2 | Pools, swaps, BPT balances | Multi-asset pool data |
| ENS | Domain registrations, transfers | Name resolution |
| Sperax | USDs transfers, SPA staking | Sperax ecosystem data |
# Install CLI
npm install -g @graphprotocol/graph-cli
# Initialize
graph init --studio my-subgraph
# Authenticate
graph auth --studio YOUR_DEPLOY_KEY
# Build + Deploy
graph codegen
graph build
graph deploy --studio my-subgraphFor full control:
# Docker Compose
docker-compose up graph-node postgres ipfs
# Deploy to local
graph create --node http://localhost:8020/ my-subgraph
graph deploy --node http://localhost:8020/ my-subgraph| Tip | Why |
|---|---|
Use startBlock wisely | Don't index from block 0 — start from contract deployment |
Avoid call handlers | They're 10x slower than event handlers |
Use BigDecimal for prices | Avoid precision loss with BigInt division |
| Batch entity loading | Use store.get() sparingly in hot paths |
| Index only what you need | More entities = slower indexing |
| Tool | Approach | Best For |
|---|---|---|
| The Graph | Decentralized, GraphQL | Production DeFi data |
| Goldsky | Managed subgraph hosting + streaming | High-performance queries |
| Envio | HyperIndex — fast parallel indexing | Speed-critical applications |
| Ponder | TypeScript framework for indexing | Developer-friendly, type-safe |
| Dune Analytics | SQL on decoded blockchain data | Analytics and dashboards |
© nirholas, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in data/skills/development/subgraph-development-guide of nirholas/three.ws.
Open the folder on GitHubat commit 238ef60
Subgraph Development Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Subgraph Development Guide this skillnirholas/three.ws | 226 | — | ~2.1k | Automated safety check: Pass | MIT | |
| API Architectcuriositech/some_claude_skills | 243 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Railway APImajiayu000/claude-skill-registry | 666 | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Ar Io Gateway Operatorar-io/ar-io-node | 127 | — | ~8.2k | Automated safety check: Notes | AGPL-3.0 | |
| Data Client Schemareactive/data-client | 2k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Wp Headless And Wpgraphqljorgerosal/wordpress-skills | 100 | — | ~1.7k | Automated safety check: Pass | MIT |
curiositech/some_claude_skills
Expert API designer for REST, GraphQL, gRPC architectures. An agent skill from curiositech/some_claude_skills.
majiayu000/claude-skill-registry
Railway.com GraphQL API automation for projects, services, deployments, and environment variables.
ar-io/ar-io-node
Operate any AR.IO node deployment — architecture, daily ops, diagnostics, and recurring pitfalls that apply to every operator.
reactive/data-client
Model data with @data-client schemas (Entity, EntityMixin, Collection, Union, Query, Values, All, Invalidate, Lazy, Scalar) for atomic, consistent, referentially-equal async data via normalization…
jorgerosal/wordpress-skills
Headless WordPress and WPGraphQL review guidance. An agent skill from jorgerosal/wordpress-skills.
modu-ai/moai-adk
REST/GraphQL API design patterns, error handling conventions, and input validation reference for backend development.
nirholas/three.ws
Add the Shaders WebGPU mouse effect used for the Tidal Commons hero: a white twinkling halftone cursor trail driven by ChromaFlow, masked through a DotGrid, finished with chromatic ripples and film…
nirholas/three.ws
Package a finished local project into an intentional GitHub repository, create a strong README and visual preview, push it safely, configure a public GitHub Pages URL when the project is compatible…
nirholas/three.ws
Audit a website or digital experience against its supplied source references for originality and plagiarism risk.
nirholas/three.ws
Turn a completed daily UI inspiration capture into exactly five original landing-page builds, one per separate Codex task, using Sites.
nirholas/three.ws
Write, rewrite, review, or continuously refine X/Twitter posts in Meng To's current voice using his deduplicated authored-post corpus, personal and product context, shared resources, and Content…
nirholas/three.ws
Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, deliberate click choreography…
Works with
Guide to building blockchain data indexes with The Graph — subgraph architecture, schema design, mapping handlers, deployment, and querying. ws. Guide to building blockchain data indexes with The Graph — subgraph architecture, schema design, mapping handlers, deployment, and querying.
Subgraph Development Guide fits situations like: explaining blockchain indexing; building custom data pipelines.
Run `npx skills add nirholas/three.ws --skill subgraph-development-guide -a claude-code`. Or copy the skill folder (data/skills/development/subgraph-development-guide in nirholas/three.ws) into .claude/skills/subgraph-development-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nirholas/three.ws --skill subgraph-development-guide -a codex`. Or copy the skill folder (data/skills/development/subgraph-development-guide in nirholas/three.ws) into .agents/skills/subgraph-development-guide in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nirholas/three.ws --skill subgraph-development-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/subgraph-development-guide, .gemini/skills/subgraph-development-guide, .github/skills/subgraph-development-guide and .opencode/skills/subgraph-development-guide in your project.
Going by SKILL.md and its folder, Subgraph Development Guide needs the command-line tools its instructions call (npm and docker-compose). Our summary lists: Node.js; Docker; A credential in YOUR_DEPLOY_KEY.
SKILL.md names 3 domains. As links in the text: thegraph.com, github.com and arbiscan.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Subgraph Development Guide is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Subgraph Development Guide: API Architect (curiositech/some_claude_skills, 243 stars), Railway API (majiayu000/claude-skill-registry, 666 stars), Ar Io Gateway Operator (ar-io/ar-io-node, 127 stars) and Data Client Schema (reactive/data-client, 2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nirholas (a GitHub user) maintains it in nirholas/three.ws, which has 226 GitHub stars. The repository holds 165 skills in this directory. The repository was last updated on October 7, 2026.
Source: nirholas/three.ws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.