Turn one line of script into a paid, narrated animatic video — a real OKX A2MCP agent settled on-chain via x402.
DALANG turns one line of brief into a finished, narrated vertical animatic video — the
entire storyboard-to-video pipeline collapsed into a single agent call. Give it an idea and
it writes the shot list, generates style-consistent frames that hold one recurring character
or product across every shot, voices each line, burns in captions, and assembles a
share-ready 1080x1920 MP4. Two engines: a fast Ken Burns tier, and a cinematic tier that
animates each shot into real motion via image-to-video.
It is built agent-native for OKX.AI, not adapted to it. One tool call = one billable unit,
priced and settled as x402 on X Layer: $0.49 in USDT0 through OKX's own facilitator, with a
free storyboard-preview and quote tier so a caller — human or agent — can approve direction
and price before paying. It is composable: an upstream "director" agent can hand DALANG a
ready-made shot_list and use it purely as a render primitive, which is what an agent economy
actually needs.
Every output is Web3-native. Each render returns a content fingerprint (SHA-256 + IPFS
CIDv1) and a tamper-evident proof-of-creation you can anchor on X Layer, plus mint-ready
ERC-721 metadata carrying co-creator royalty splits — so every agent that contributed to a
video co-owns it — and on-chain remix lineage linking a derivative back to its parent. The
landing page ships an in-browser verifier: drop the MP4, the fingerprint is recomputed
locally and matched. Authenticity you check rather than trust.
Also in the box: multilingual title and voiceover (including Bahasa Indonesia), vertical
templates (product ad, book trailer, recipe reel, real estate, explainer), style presets,
editable SRT subtitles, and a token-gating option on X Layer.
One sentence in → a paid, provably-authored, co-owned film out, with no human in the loop.
Agent #7234 on OKX.AI · MCP endpoint https://dalang-engine.vercel.app/mcp
<p>Built from zero during the hackathon window.</p><p>Engine: a single Venice API key drives the LLM shot-breakdown, frame generation with</p><p>character consistency, and Kokoro TTS; ffmpeg assembles Ken Burns motion, burned-in</p><p>captions, an optional score-and-sting bookend, and the final H.264/AAC cut. Later in the</p><p>window the cinematic tier landed — real image-to-video motion per shot, with automatic</p><p>fallback to Ken Burns when a clip fails.</p><p>Agent-economy layer: an x402 payment gate written to the open spec, then reconciled field</p><p>by field against OKX's own @okxweb3/x402-* SDKs (facilitator, network eip155:196, USDT0,</p><p>EIP-712 domain). Payment is verified BEFORE any compute and settled only AFTER a successful</p><p>render, so a failed render is never charged; a settlement failure withholds the artifact</p><p>instead of shipping free work. Registered as an A2MCP ASP on <a href="http://OKX.AI">OKX.AI</a> (Agent #7234) and</p><p>deployed serverless on Vercel Fluid Compute with a pip-bundled ffmpeg.</p><p>Web3 depth: <a href="http://provenance.py">provenance.py</a> (SHA-256 + CIDv1 + ERC-721 metadata + royalty splits + remix</p><p>lineage), <a href="http://tokengate.py">tokengate.py</a> (X Layer balanceOf gating, fail-closed, documented honestly as a soft</p><p>gate), a render-credit ERC-20, and a browser-side verifier cross-checked byte-for-byte</p><p>against the Python implementation in Chromium, Firefox and WebKit.</p><p>Hardening was the bulk of the work: eight review passes (seven functional, one security)</p><p>plus adversarial agent reviews. Real bugs found and fixed, not cosmetics — an ffmpeg hang on</p><p>a corrupt frame that could burn an entire paid render; an x402 success sentinel a caller</p><p>could forge to dodge settlement; a Docker build broken by an inline comment that had made</p><p>every container deploy dead on arrival; an API key attached to third-party CDN download URLs;</p><p>a Vercel response-cap overflow that made callers pay and receive a 500. On the final day,</p><p>live probing caught the biggest one: the deployed MCP endpoint was returning HTTP 200 with an</p><p>every container deploy dead on arrival; an API key attached to third-party CDN download URLs;</p><p>a Vercel response-cap overflow that made callers pay and receive a 500. On the final day,</p><p>live probing caught the biggest one: the deployed MCP endpoint was returning HTTP 200 with an</p><p>EMPTY body on every call, because Vercel's ASGI bridge cancels an SSE stream before it</p><p>flushes — invisible to smoke tests that only assert status codes. Fixed by replying as plain</p><p>JSON, verified live, and the free preview tool was shrunk from a 5.2 MB response to 97 KB.</p><p>Everything is covered by self-checks and an offline integration test that runs the real</p><p>render chain against stubbed generators, in CI on every push, including a Docker build job.</p>