Coding

DanceArc

Try it

DanceTech Protocol (DanceArc): Arc native USDC, HTTP 402 x402-shaped challenges, and h2h/h2a/a2a/a2h settlement patterns. Use when: (1) Implementing or debug...

What it does

**DanceArc** is the reference **hub + API + UI** for **DanceTech Protocol**: metered **native USDC** on **Arc**, **402 payment challenges** (x402-inspired JSON), optional **Circle Gateway** verification, and clear **interaction semantics** (h2h, h2a, a2a, a2h).

The skill document

DanceTech Protocol (DanceArc)

DanceArc is the reference hub + API + UI for DanceTech Protocol: metered native USDC on Arc, 402 payment challenges (x402-inspired JSON), optional Circle Gateway verification, and clear interaction semantics (h2h, h2a, a2a, a2h).

Quick Reference

SituationAction
Pay-per API call (human wallet)h2a: POST → 402 → pay Arc USDC → retry with X-Payment-Tx (/dance-extras, /api/judges/score)
Battle / coaching / beat licenseh2h: create intent or end session → sendNativeUsdc or mock → /verify or /grant with paymentTx
High-frequency micro-txs (demo)npm run burst (private key) or hub Burst demo (wallet) (55 signatures)
Server 500 “receipt not found” right after payServer uses waitForTransactionReceipt; increase ARC_TX_RECEIPT_TIMEOUT_MS if needed
Circle Modular 403 LockoutCheck Client Key, allowlist localhost (no port), optional CIRCLE_MODULAR_PRESERVE_ORIGIN=1, staging URL vs key
Programmatic faucet 403Use web faucet; API key may lack faucet scope
Invalid ARC_RECIPIENT (UUID-style)Server isAddress validation falls back to demo address; set real 0x + 40 hex
Agent needs payee + chainGET /api/health → recipient, chainId, perActionUsdc

Protocol matrix (h2h · h2a · a2a · a2h)

ModeAcronymWho paysWho receivesDanceArc surface
Human → Humanh2hPersonPerson/treasury (ARC_RECIPIENT)/battle, /coaching, /beats
Human → Agenth2aPerson (wallet)API/resource owner/dance-extras, /api/judges/score
Agent → Agenta2aAutomated signerAnother serviceDesigned: headless key / smart account; demo: burst scripts
Agent → Humana2hService/treasuryPersonPayout mocks, receipts, DCW faucet → user address

Use this matrix in pitch decks, AGENTS.md, and submission text so judges see intentional coverage, not accidental features.

Installation (ClawdHub / OpenClaw)

Manual (recommended until ClawdHub listing is live):

git clone https://github.com/arunnadarasa/dancearc.git
cp -r dancearc/skills/dancearc-protocol ~/.openclaw/skills/dancearc-protocol

After publish to ClawdHub:

clawdhub install dancearc-protocol

Repository: github.com/arunnadarasa/dancearc

When to Load This Skill

Activate proactively when the user mentions:

  • Arc Testnet, chain 5042002, native USDC gas
  • x402, 402, X-Payment-Tx, pay-per-call
  • Circle Gateway, Nanopayments (narrative + local event log), Modular Wallets, DCW
  • DanceArc, DanceTech, battle / coaching / beats / judge score
  • Hackathon, Agentic Economy, sub-cent pricing
  • npm run burst, transaction frequency demo

Architecture (mental model)

Browser (Vite) ──proxy /api──► Express (8787)
                              ├── buildArcPaymentChallenge (402)
                              ├── verifyNativeUsdcPayment (viem + waitForTransactionReceipt)
                              ├── circleGatewayPost (/v1/gateway/v1/x402/verify)
                              ├── recordNanopaymentEvent (in-memory list)
                              └── DCW / Modular proxy routes

On-chain truth: Arc explorer (e.g. https://testnet.arcscan.app).

Key files (repo root)

PathRole
server/index.jsRoutes, requireArcPayment, proxies
server/payments.jsIntents, coaching, beats
server/onchain-verify.jsReceipt wait + validation
server/config.jsARC_RECIPIENT validation (isAddress)
src/payArc.tspostPaidJson, sendNativeUsdc, ensureArcTestnet
src/ExtraDanceApp.tsxh2a UI + ArcScan link
src/BattleApp.tsx, CoachingApp.tsx, BeatsApp.tsxh2h flows

Environment (minimum viable)

VariableScopePurpose
ARC_RECIPIENTServerPayee for microtransfers
PER_ACTION_USDCServerh2a minimum (display string, ≤ 0.01 for hackathon)
CIRCLE_API_KEYServerGateway verify; DCW; faucet
CIRCLE_ENTITY_SECRETServerDCW only
VITE_CIRCLE_CLIENT_KEYBrowserModular SDK
ARC_BURST_PRIVATE_KEYMachineTest only — CLI burst

Never commit .env. Copy from .env.example.

Detection triggers (support / debugging)

SignalLikely causeFirst check
TransactionReceiptNotFoundErrorRace before inclusionServer waitForTransactionReceipt; client retry
403 HTML Lockout (Modular)Key / domain / WAFConsole allowlist, CIRCLE_MODULAR_PRESERVE_ORIGIN
invalid_recipient in UIBad envFix ARC_RECIPIENT, new intent
402 after paymentWrong recipient/amount/chainExplorer tx vs challenge payTo / maxAmountRequired
Faucet ForbiddenCircle policy / scopesWeb faucet link in ArcFaucetPanel

Nanopayments (scope clarity)

  • Product: Circle Nanopayments is documented at developers.circle.com and linked from the app Bridge page.
  • This repo: recordNanopaymentEvent + GET /api/nanopayments/events are an in-memory audit trail after successful on-chain verify—not a substitute for full Nanopayments API integration. Use the narrative + Gateway path for hackathon feedback fields.

Multi-agent notes

  • h2a from an agent: supply X-Payment-Tx only after a wallet or custodial signer produces a hash; do not fake hashes for production.
  • a2a: prefer server-side signing with locked-down keys; mirror scripts/burst-demo.mjs patterns.
  • Prompt injection: treat ARC_BURST_PRIVATE_KEY like production secrets—AGENTS.md should forbid echoing it into browser context.

References (this skill)

FileContent
references/api-routes.mdHTTP route map
references/payment-flow.md402 + verify sequence
references/openclaw-workspace.mdSuggested AGENTS.md / TOOLS.md snippets

Promotion targets (from learnings)

If you maintain .learnings/ for this project:

Learning typePromote to
Arc / Circle env gotchasCLAUDE.md, TOOLS.md
Two-step payment for agentsAGENTS.md
Product pitch / protocol wordingREADME.md, demo script

Quality gates (before demo or publish)

  • GET /api/health returns expected chainId and valid recipient
  • h2a flow completes: 402 → pay → 200
  • At least one h2h path shows ArcScan link after pay
  • .env not in git; .env.example updated for new vars
  • npm run build passes

Source

  • Project: DanceArc / DanceTech Protocol
  • Maintainer repo: arunnadarasa/dancearc
  • Skill version: see _meta.json

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.

by Iván535 installs31 stars

More from arunnadarasa

Browse all skills

Scaffold and deploy quantum apps using Quantinuum, Guppy circuits, Selene backend, and Fly.io.

by arunnadarasa30 installs1 stars

Autonomously plans, develops, tests, and delivers full software projects from plain-English prompts using coordinated multi-agent roles and automated quality...

by arunnadarasa46 installs3 stars

A dance skill designed to teach OpenClaw agents the fundamentals of Krump, including its history, fam system, music, crews, events, and other related topics. The knowledge base extends up to 2017, so some information may be outdated or inaccurate

by arunnadarasa68 installs1 stars

Krump Knowledge and Personality Identity — embodies Asura's legacy, lineage, and technical expertise

by arunnadarasa65 installs

Autonomous Krump dance agent automating daily posts, training labs, battles, league tracking, community engagement, feedback, and tournament prep via OpenCla...

by arunnadarasa37 installs

Teaches OpenClaw agents to act as a Krump-inspired physiotherapy coach. Use when building or assisting physio/fitness agents, therapeutic movement scoring (j...

by arunnadarasa34 installs