Build Peer-to-Peer Apps in 10 Lines of Declarative Code.
ZML (Zoth Markup Language) eliminates web frameworks, build pipelines, and centralized servers. Declare off-grid store catalogs, mesh bulletin boards, and encrypted scratchpads in plain text. Native ambient device authentication, feeless Vaelor L1 DAG payments, and CAS swarm storage built right in.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Zero Passwords, Zero Signups
Every ZothApp automatically accesses the host device's native Ed25519 node passport via AMBIENT_DEVICE_AUTH. Identity is cryptographic, deterministic, and cookie-free.
Feeless Vaelor L1 DAG Settlement
Native ITEM and PAY_LINK directives lock merchant payments directly to the host's sovereign ledger. Atomic account lattice settlement with $0.00 gas and sub-20ms DAG finality.
P2P Swarm Distribution
Applications compile to single-page, CSP-hardened bundles stored in Content-Addressed Storage (CAS) and announced over Kademlia DHT. No central web server can seize or delete your code.
ZML Syntax & Directive Lexicon
ZML is line-oriented, whitespace-tolerant, and declarative. Directives are written in uppercase, followed by quoted string arguments.
| Directive | Arguments | Description & Behavioral Output |
|---|---|---|
| @app | "Application Name" | Defines the human-readable application title rendered in the browser header and omnibar tab. |
| @slug | "unique-slug" | Sets the immutable darknet URL slug (e.g. zoth://storefront). Auto-sanitized to lowercase alphanumeric. |
| @desc | "App Description" | Provides the indexing summary for the ZothNet zero-cloud full-text search engine. |
| HEADER | "Header Title" | Renders an avant-garde bold header row with an integrated real-time cryptographic device key verification badge. |
| AMBIENT_DEVICE_AUTH | None | Injects the Sovereign Passport badge. Initiates background Ed25519 challenge-signing with the local daemon. |
| DITHER_BANNER | "Notice Text" | Renders an eye-catching Bayer-dither patterned alert ribbon with sovereign gold highlight styling. |
| BRAILLE_RADAR | None | Renders an interactive 60fps moving sub-pixel Unicode U+2800 Braille telemetry waveform visualizer. |
| NOTICE | "Protocol Notice" | Displays an ivory/alabaster boxed informational callout with gold left border accent. |
| GRID(n) | (columns) | Opens a responsive CSS Grid container spanning 1 to 4 columns (auto-stacks smoothly on mobile screens). |
| ITEM / PRODUCT | "Title" "Price" "Desc" | Renders an interactive sovereign asset card with "+ Add to Cart" action and live Vaelor price computation. |
| PAY_LINK | "Title" "Price" "Desc" | Renders an immutable direct 1-click settlement card bypassing the cart for instant atomic DAG finality. |
| CART_BAR | None | Renders the shopping cart checkout tray with live item count, total price in VLR, "Settle with Vaelor L1", and Stripe fallback. |
| RECEIPT_BOX | None | Renders the cryptographic settlement container displaying the DAG transaction hash, block timestamp, and debited nodes. |
| DIVIDER | None | Closes any open grid and outputs an avant-garde double-line typographic ASCII separator. |
| COFFEE_BUTTON | None | Embeds a subtle, non-intrusive "☕ Buy Us a Coffee" Stripe support button (Zero paywalls, 100% open-access). |
The ZothSDK Frame Bridge API
ZML compiles to code executing inside an isolated, cross-origin <iframe> sandbox. The application communicates with your ZothNet mesh node through standard HTML5 postMessage semantics.
1. Ambient Ed25519 Authentication
Request the local node to sign a cryptographic challenge nonce without exposing secret keys:
// Request ambient auth handshake
window.parent.postMessage({
type: 'ZOTH_REQUEST_AUTH',
appSlug: 'my-zml-app'
}, '*');
// Listen for signed cryptographic passport
window.addEventListener('message', (event) => {
if (event.data?.type === 'ZOTH_AUTH_SUCCESS') {
const { node_id, alias, signature } = event.data.auth;
console.log('Verified device:', node_id, alias);
}
});
2. Feeless Vaelor L1 DAG Settlement
Trigger an atomic micropayment over the DAG lattice with instant zero-fee sub-20ms finality:
// Dispatch feeless DAG payment
window.parent.postMessage({
type: 'ZOTH_VAELOR_PAY',
amountVlr: 50,
merchantAddress: 'vlr_merchant_addr...',
memo: 'Order: Hardware Node'
}, '*');
// Await settlement confirmation hash
window.addEventListener('message', (e) => {
if (e.data?.type === 'ZOTH_PAY_SUCCESS') {
console.log('DAG Tx Hash:', e.data.txHash);
}
});
3. GossipSub Topic Broadcasts
Broadcast public messages or peer status across the mesh topic swarm:
// Broadcast to GossipSub topic
window.parent.postMessage({
type: 'ZOTH_BROADCAST',
topic: 'general',
message: 'Hello from air-gapped sovereign node!'
}, '*');
4. 3-Hop Sphinx Mixnet Messaging
Send onion-encrypted, metadata-free 1,280-byte packets directly to any destination node ID:
// Route private Sphinx packet
window.parent.postMessage({
type: 'ZOTH_SEND_MESSAGE',
destId: 'zoth:81d5bf241b152eaf151b47fc962e0014...',
payload: JSON.stringify({ action: 'sync_item', id: 42 })
}, '*');
Pre-Built Sovereign App Templates
Click any template below to immediately load and test it inside the live in-browser studio above.
How to Publish ZML Apps to ZothNet
ZML applications require zero hosting fees, zero DNS registrations, and zero cloud accounts. Here is how to publish your app in 3 simple steps:
Author Your ZML
Use the in-browser playground above, or write your code in any plain text editor and save it as app.zml.
Publish via Studio or CLI
Paste into the ZothNet omnibar at zoth://studio, or save instantly using the ZothNet CLI binary:
zothnet apps save my-app --zml app.zml
Access & Share Peer-to-Peer
Your app is immediately live at zoth://my-app across your mesh, discoverable over Kademlia DHT, and searchable in the ZothNet Omnibar.
Frequently Asked Questions
Why create a new language instead of plain HTML/JS?
Standard web stacks require build tools (Webpack, Vite), complex state management, and third-party authentication services. ZML provides pre-audited, cryptographically sovereign primitives (ambient passports, DAG checkout, CAS storage) in 10 readable lines of code that any non-developer can write safely.
Can I still write raw HTML, CSS, and JavaScript?
Absolutely. ZML seamlessly compiles into standard HTML5 with vanilla JavaScript. Advanced developers can mix raw JavaScript into ZothApps or embed full single-page React/Vue/Svelte builds into their app bundles.
What happens during an internet blackout?
ZML apps and the ZothNet runtime execute 100% locally on your machine or local radio/Wi-Fi mesh. Because there are no CDN or cloud API dependencies, your apps continue running and transacting even if clear-net telecommunications are severed.
Are there transaction fees for payments made in ZML apps?
No. The Vaelor L1 DAG operates on an asynchronous account-lattice model with $0.00 gas fees. 100% of the settlement goes directly to the merchant's cryptographic address.