Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

Repository files navigation

Powerloom · Data Markets (standalone site)

Live transparency surface for Powerloom data markets — one catalog entry per market, not a pile of PUBLIC_DATAMARKETS_BDS_* env vars.

Site shell (.env, 3 vars): docs, GitHub, marketing links for the header/footer.

Per-market (src/lib/datamarkets/catalog/markets.json, gitignored): copy from committed markets.example.json on the build host and edit. Includes DSV mainnet contracts, resolverAnchor (mainnet alpha for full-node aggregates), core API, metering, MCP, DSV watcher URLs, etc. Add a second market by appending a JSON object with the right kind (bds_uniswap_v3 vs dsv_subjective for inference-style markets).

On-chain reads use anchorRpcUrl in each live BDS market entry (default in markets.example.json: https://rpc-v2.powerloom.network) — public https only, never keyed RPC URLs.

Dev

npm install
cp .env.example .env
cp src/lib/datamarkets/catalog/markets.example.json src/lib/datamarkets/catalog/markets.json
# edit markets.json for your deployment
npm run dev

Build

npx svelte-kit sync
npm run build   # validates .env + markets.json, syncs endpoint catalogs per live market

catalog/prerender/{slug}-endpoints.json is generated by npm run sync:catalog from each live market's endpointsCatalogUrl in markets.json.

Watcher snapshot (gitignored, like markets.json):

cp src/lib/datamarkets/catalog/prerender/bds-uniswapv3-ethereum-watcher.example.json \
   src/lib/datamarkets/catalog/prerender/bds-uniswapv3-ethereum-watcher.json
npm run sync:watcher   # only on deploy prebuild — refreshes live tally data

predev / precheck do not run sync:watcher (avoids noisy git diffs). npm run build runs it on the deploy host.

On-chain epoch reads use the public anchor RPC from the browser. Watcher (watcherApiBase, e.g. dsv-monitor.powerloom.io/api) serves dashboard JSON and GET /public/mesh-health (tally-derived participation). Mesh-health is not served from DSV validator monitor-api. See daily_notes_work_plan/2026-06-02/nginx-dsv-monitor.conf for nginx OPTIONS on /api/.

Env (site only)

Variable Purpose
PUBLIC_DATAMARKETS_SITE_DOCS_URL Docs link
PUBLIC_DATAMARKETS_SITE_GITHUB_ORG GitHub org link
PUBLIC_POWERLOOM_MARKETING_URL Main marketing site

Deployer copies catalog/markets.example.jsoncatalog/markets.json (not in git). Market card art: thumbnailUrl → files in static/markets/ (committed with the site).

Adding a market

  1. Add an object to catalog/markets.json (kind: bds_uniswap_v3 or dsv_subjective).
  2. Run npm run validate:markets.
  3. For live BDS markets, set endpointsCatalogUrl and run npm run sync:catalog.
  4. Prerender picks up new slugs via markets/[slug]/+page.js entries().

Planned subjective markets (e.g. inference capacity index) get PlannedMarketPage until they have live APIs and a bds_uniswap_v3-style block.

Planned subjective markets (e.g. inference capacity index) do not link to internal coordination repos — use publicDocsUrl in markets.json only when a public docs page exists.

Deploy

Docker: pass the three PUBLIC_* site vars as build args (see docker-compose.yml). Before build, cp catalog/markets.example.json catalog/markets.json and edit on the build host (or mount/copy in CI).

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages