Skip to content

Latest commit

 

History

History
109 lines (78 loc) · 8.46 KB

File metadata and controls

109 lines (78 loc) · 8.46 KB

Blockchain Lab Hub — blockchains.github.io

services ci monitors

One search for 75 free blockchain services: browser tools, JSON data APIs, AI briefs (Grok), monitors, feeds and developer kits. Every service is health-checked and shows a live status badge. → https://blockchains.github.io

Blockchain Lab Hub

Category # Highlights
🤖 AI (Grok, precomputed in Actions) 8 Daily market brief · incident explainer · hackathon ideas · chain digest · protocol briefs · contract explainer · audit-checklist reports · whitepaper summaries
📡 Monitors 7 Gas tracker + alerts · chain liveness · RPC leaderboard · stablecoin depeg · Slither security scan · incident feed · site status
🔎 Finders 8 Portfolio viewer · protocol compare · events · jobs · grants · glossary · papers · phishing checker
📰 Feeds 2 Incident RSS · events ICS
🛠 Tools 26 blockchainlab-tools
📦 Data API 20 blockchainlab-api
👩‍💻 Developers 4 SDK · MCP server · 54 labs · API docs

Machine-readable: services.json (catalog) · data/status.json (health).

How it works

Static GitHub Pages site + scheduled GitHub Actions. No servers, no trackers.

Workflow Schedule Does
monitors.yml hourly gas (21 chains + blob fee + BTC), chain liveness (23 chains), RPC latency (64 endpoints), health
daily.yml 04:30 UTC incidents + RSS, events + ICS, jobs, grants link-check, glossary, protocols, depegs, token list; Grok: brief, incident explainer, ideas, digest
weekly.yml Mon 03:00 UTC Slither on 17 Sourcify-verified contracts; Grok: protocol briefs, contract explainers, audit checklists, whitepaper summaries
security-scan.yml on demand Slither on any Sourcify-verified address (maintainers)
health.yml every 6 h checks every service live: pages 200, data fresh, developer-repo CI green
ci.yml push / daily pages up to date, data validation, Playwright e2e of every page (local + live)

AI runs only inside Actions with the XAI_API_KEY repository secret; the browser never calls an AI API. AI output can be wrong and is labelled as such on every page.

Develop

python scripts/job_gas.py            # any job: job_liveness, job_rpc, job_daily [name], job_slither, job_ai [name] (needs XAI_API_KEY)
python scripts/catalog.py && python scripts/gen_site.py
python tests/serve.py 43117 &        # serves the repo, proxies sibling project sites
BASE=http://127.0.0.1:43117 python tests/e2e.py && python tests/validate.py

Data sources: public JSON-RPC, mempool.space, DefiLlama, L2BEAT, Sourcify, Slither, ETHGlobal, Greenhouse job-board APIs, CryptoJobsList, MetaMask eth-phishing-detect, Uniswap token list, blockchainlab.com. Not financial advice.

Use as a building block

For AI agents and builders: read AGENTS.md (setup, commands, structure, rules), llms.txt (doc map) and the machine-readable blocks/hub.json (schema). How all Blockchains blocks fit together: Build with Blocks · org catalogue: https://blockchains.github.io/blocks.json.

What it exports

Export Type Install / access
services.json http catalogue of every service with id, name, url, category
blocks.json http aggregated blocks.json of every live Blockchains repo
llms.txt http org-wide doc map for LLMs (+ llms-full.txt)
data/*.json http gas.json, liveness.json, rpc-latency.json, incidents.json, events.json, jobs.json, grants.json, depeg.json, status.json, ai/*.json
feeds http incident RSS + /events/events.ics

Minimal example (live, checked after publishing)

curl -s https://blockchains.github.io/blocks.json | jq -r '.blocks[] | "\(.name): \(.kind | join(",")) → \(.entrypoints[0].install // .entrypoints[0].usage // .entrypoints[0].ref)"'
curl -s https://blockchains.github.io/services.json | jq '.count'

Inputs → outputs

  • In: public APIs/RPCs (network) read by scheduled jobs; XAI_API_KEY (secret) AI briefs
  • Out: pages (HTML); data files (JSON with generated_at); blocks catalogue (JSON)

Composes with

Versioning & stability: stable. Data files keep their shape and always include generated_at. blocks.json is regenerated by scripts/blocks.py (weekly workflow + on demand).

Configuration

The site is static and needs no keys to browse. The data jobs read these environment variables:

Variable Used by Purpose
XAI_API_KEY scripts/job_ai.py (via common.py) Grok calls for AI-generated pages; jobs that need it fail clearly when it is unset
XAI_MODEL scripts/common.py Model override (default grok-4.3)
GITHUB_TOKEN / GH_TOKEN scripts/job_health.py Authenticated GitHub API calls
SCAN_WORKERS scripts/job_slither.py Parallel Slither scans (default 3)
HEALTH_LOCAL=1, HEALTH_MIN scripts/job_health.py Check local files instead of the live site; minimum healthy ratio
FORCE=1 scripts/job_ai.py Regenerate even when the source text is unchanged
BASE tests/e2e.py Site URL under test

Licence

MIT, see LICENSE. Data stays with each named source.

Contributing

Issues and pull requests are welcome. Please read the contributing guide, code of conduct and security policy first.


Built by Blockchain Lab — blockchainlab.com · grokhack.com