A signed transaction in.
A real action out.
Every command flows through the same path. Because it is signed, you get authentication for free. Because it is on-chain, you get ordering, timestamps, and a public audit trail for free.
Sign
Build a JSON command and sign a transaction with the calldata. No wallet connection in your frontend. Users sign from a wallet app, CLI, script, or agent.
Send
The transaction lands on Ethereum: ordered, timestamped, permanent. Your command is public data attached to a real signature.
Stream
The relayer streams commands in real time over WebSocket, with backfill so nothing is ever missed. On-chain, ordered, timestamped.
Interpret
Validate the schema, authorize the signer, dedupe by transaction hash. Authorization fails closed: signer to role to command.
Execute
Run the matching handler serially per app. No two commands race. Predictable backend behavior from a public ordered ledger.
Verify
An optional on-chain receipt makes the whole round trip provable. From signed calldata to executed handler — fully auditable.
What goes in calldata
A minimal JSON envelope. Your app defines the command set; the bus handles transport and ordering.
No session to hijack
Without Connect Wallet, there is no live session between your site and a user wallet. Phishing surface drops sharply.
100% static
Your UI never touches keys. Deploy to any CDN. No provider injection required.
Headless by default
Same commands from a browser, terminal, cron script, or AI agent. One auth model everywhere.
Ready to define your commands?
Register a schema and handler. Keyless dApps validates, authorizes, and executes.
Go to Build →