Autonomous Uniswap V3 monitoring + onchain provenance verification, in minutes. Decentralized data, not trust-me data.
Every data point this skill fetches is finalized onchain by Powerloom's decentralized sequencer-validator network. The verify_data_provenance tool compares API CIDs to onchain commitments so alerts can carry a cryptographic receipt, not a vendor's word.
- Whale Radar — USD-threshold alerts:
bds_mpp_snapshot_trades_pool_addressfor each pool inpoll_fallback_pools. For cron / OpenClaw heartbeats over all pools in one bounded batch, usenode scripts/whale-cron.mjs(bds_mpp_snapshot_allTrades+ pool metadata). - Token-Flow — all swaps touching a configured token (default USDC) across pools derived at runtime.
- Threshold Guard — bracket alerts from premium
tokenPrices(threshold-guard.mjs); live swaps viabds-agent guard run. - Autonomous DeFi Analyst — default multi-pool
bds_mpp_snapshot_allTrades+ all-pools token volume; setfilters.scope: single_poolinrecipes/defi-analyst.yamlfor single-pool snapshots only.
End-to-end one-shot prompts — pick by onboarding state:
| Variant | Use when | Reference |
|---|---|---|
| Free-key cron | You already have sk_live_... from bds-agent signup (2 free credits, no wallet) |
references/09-openclaw-one-shot-free-key.md |
| Pay-signup + cron | You want autonomous wallet-funded onboarding for a 10-credit plan in the same prompt | references/08-openclaw-one-shot.md |
Default behavior: whale-radar.mjs, token-flow.mjs, and defi-analyst.mjs each run one bounded round and exit (safe for cron). Use --daemon only if you want a local repeat loop (heartbeat.interval_seconds between rounds).
For scheduled heartbeats, prefer whale-cron.mjs (exits) or the recipe scripts without --daemon. This repo does not ship streaming trade consumption.
cd powerloom-bds-univ3
npm install
export POWERLOOM_API_KEY=sk_live_...
node scripts/ensure-credits.mjsWhere to get POWERLOOM_API_KEY:
- Free (no wallet, 2 credits):
bds-agent signup— browser device flow on the metering service. Samesk_live_...works against this skill, the hosted MCP server, and any pay-signup top-up later. - Wallet-funded (10-credit plan):
node scripts/signup-pay.mjs --dry-run(quote summary only), thennode scripts/signup-pay.mjs --yesonce after verifying stderr output — prefer argv over env so confirmation bypass is not persisted in OpenClaw skill config. CI may usePOWERLOOM_SIGNUP_PAY_CONFIRM=yesfor a single invocation only. Native or ERC-20 perquote.payment_kind(POWER CGT on 7869 = native). - More credits, existing key:
node scripts/credits-topup.mjs— same--dry-run→--yespattern (or one-shot env for CI only). SeeSKILL.md.
Optional: POWERLOOM_TELEGRAM_BOT_TOKEN, POWERLOOM_TELEGRAM_CHAT_ID, and dispatch.channel: telegram in recipes/*.yaml.
One deploy (npm run build + npm start on bds-agenthub-billing-metering) serves both:
-
Agent signup (CLI / API) — origin only: bds-metering.powerloom.io (
BDS_AGENT_SIGNUP_URL/bds-agent signup --base-url …). -
Browser signup + billing UI — bds-metering.powerloom.io/metering
-
Hosted MCP SSE:
https://bds-mcp.powerloom.io/sse
| What | Name |
|---|---|
| ClawHub / OpenClaw skill folder & slug | powerloom-bds-univ3 |
| MCP tools on the hosted server | bds_mpp_*, get_credit_balance, verify_data_provenance — there is no tool named bds_univ3. |
To print the live tool list from the API (same handshake as callTool):
export POWERLOOM_API_KEY=sk_live_...
node scripts/list-mcp-tools.mjsPublishing is optional for trying the scripts and SKILL.md instructions:
-
Scripts only — From this directory, with
POWERLOOM_API_KEYset, runnode scripts/ensure-credits.mjs,node scripts/list-mcp-tools.mjs(proves tool names),node scripts/powerloom-mcp-client.mjs get_credit_balance '{}', or a recipe (whale-radar.mjs, etc.). That validates MCP wiring end-to-end against the hosted server. -
OpenClaw / ClawHub — If
skills listand the dashboard showpowerloom-bds-univ3as ready, the skill is on disk and registered. That is not the same as “the main chat always loadsSKILL.mdinto the model on every turn.” If chat still acts blind, check your OpenClaw agent actually uses that skill (per-agent skill selection / defaults), then new session after changes. The reliable execution path is stillnode scripts/…withPOWERLOOM_API_KEY; chat is best-effort unless you also wire BDS MCP for tools in the tool list.- Registry:
clawhub install powerloom-bds-univ3only pulls published builds. Local dev: copy this repo’s root into…/workspace/skills/powerloom-bds-univ3/withSKILL.mdat the folder root, setPOWERLOOM_API_KEYinopenclaw.jsonskillentries, restart the gateway. - Compose /
OPENCLAW_WORKSPACE_DIR: The stack usually reads a.envfile next todocker-compose.yml. Docker Compose substitutes${OPENCLAW_WORKSPACE_DIR}from: that.envfile, or exported variables in the shell you rundocker composefrom, or a.envoverride your vendor documents. It is not magic — if unset, the mount line can be wrong or empty. Set it to the host path that should map to…/workspacein the container (often your user’s…/.openclaw/workspaceas an absolute path). Checkdocker compose configto see the resolved value.
Docker bind mounts,
ENOENT, symlinks, UI quirks:references/06-troubleshooting.md. - Registry:
-
After publish —
clawhub install powerloom-bds-univ3(or the slug you published).
npx clawhub login
npx clawhub publish . --slug powerloom-bds-univ3 --version 0.1.0Source: github.com/powerloom/powerloom-bds-univ3 (mirror this folder into that org repo).