Trollz SDK — CODIE encodes every Claude call: 60–80% fewer tokens, same intelligence.
Deploy agents, embed them anywhere, bind to Discord / Telegram / SMS / Twitch.
GentlyOS Security SDK — GRIM hashes every function. LLMs emit hashes, not instructions.
Secrets live in AES-256-GCM vault — they never touch inference.
You get a compiled Rust binary. Your source stays on your server. Prompt injection is structurally impossible.
REST API for the trollz.fun agent platform. Mint agents, embed them, bind channels, collect SYNTH. No API key needed — your wallet is your identity.
Manifest Hash Verification Runtime. Secure any agentic pipeline in 30 seconds. You get a compiled Rust binary — not source. Your secrets never leave your vault.
Mint an agent, embed it anywhere, bind it to every channel. No API keys. Your wallet signs everything.
Mint an agent NFT on Sui. One POST call. You get back an nft_id and a slug URL. The agent is live immediately — no approval, no waitlist.
Character type 0–11 maps to your SDF-rendered character (ZAPP, SAGE, SPARK...). Lifespan kinds: instant · session · event · vector · permanent.
SYNTH starts accruing to owner_wallet on first interaction.
One script tag. Any website. Drop it into your site's <body>. The widget renders bottom-right in a Shadow DOM — fully sandboxed, no cookies, CSP-safe.
Users chat with your agent directly from your site. Every reply earns SYNTH streamed to your Sui wallet. Fully customisable position and theme via data-* attributes.
Talk to the agent directly. POST a message to your agent. The CODIE pipeline compresses context, calls the inference layer, and returns the response. Supports streaming (SSE).
Returned HTML fragment is HTMX-ready — swap directly into your UI. JSON mode also available with Accept: application/json.
One agent. Every channel. Bind to Discord, Telegram, Twitch, SMS — your agent replies in all of them. Each channel binding stores in the agent record on Sui.
For SMS: provision a Twilio number via the API. For Discord: pass your guild + channel ID. The agent goes live in the channel immediately after binding.
Wrap any agentic codebase in MHVR. Your functions become a compiled dispatch map. The LLM can only call what's in it.
You receive a compiled Rust binary. No source code. No npm. No dependency chain to trojanize. The binary + your manifest XML is the entire distribution artifact.
gently init asks 3 questions and creates your config + vault. gently scan walks your codebase and hashes every function — nothing else. gently serve starts the grind server your LLM talks to.
The manifest is the only thing that leaves your server. It contains SHA-256 hashes of your functions and short purpose strings — nothing else. No paths, no variable names, no logic, no secrets.
The LLM receives the manifest as context (~60 tokens for 10 functions). It emits a hash. That hash either resolves or returns None. There is no third option.
Secrets go in the vault. They never come out into inference. The LLM sees $STRIPE_KEY as a reference. At call time, the vault decrypts the value, passes it directly to the function, and drops it from memory — microseconds total.
Secrets never appear in: the LLM context, the grind request/response, log output, error messages, or network payloads.
The full protected pipeline. LLM emits a hash. Grind resolves it against the compiled dispatch map. If it's there — the function runs, secrets injected from vault. If it's not there — None — execution stops. No error. No fallback. No alternative path.
English instructions cannot produce a 64-character hex string. Prompt injection is structurally impossible — not filtered, not monitored. Impossible.
The gently SDK distribution artifact is a compiled Rust binary — machine code, not reconstructable to source — and a manifest XML file with hashes and purpose strings. Nothing else.
There is no npm package. No PyPI package. No .npmignore to forget. No .map file that leaks your logic. No dependency chain where someone can insert a trojan.
Your source never leaves your server. The scanner reads your code locally. It outputs hashes. Hashes go in the manifest. Manifest goes to the LLM. Source stays home.
Your secrets never touch inference. Values live in an AES-256-GCM encrypted vault. The LLM sees a $REF. The value exists in memory for microseconds at call time. The rest of the time it doesn't exist.
From zero to a deployed agent with channel bindings. No signup. No API key. Wallet-native.
44 execution keywords. 60–80% token reduction. Pattern-promoted templates. Every agent call costs less.
CODIE encodes complex agent instructions in roughly 15 tokens where raw English would use 150+. The compressed form goes to inference — the response is decoded by the bs-artisan retrieval layer. Your users see natural language. The API bill doesn't.
Novel responses that succeed get promoted to the template library — the next 10,000 similar queries cost zero inference tokens. Pattern matching first. Inference handles only what templates cannot.
15 execution primitives: START STOP WHILE IF ELSE AND OR NOT TRUE FALSE ASSIGN COMPARE READ WRITE MATH USER. Enough to express any agent behavior. Small enough for every context window.
All endpoints return JSON. Auth is wallet-signed — pass X-Wallet header. No separate API key needed. Rate limit: 120 req/min per wallet.
| METHOD | ROUTE | DESCRIPTION |
|---|---|---|
| POST | /mint/agent | Create agent NFT · mints on Sui · returns nft_id + slug |
| GET | /a/:agent_id | Agent slug page · HTMX server-rendered · wallet detection → host or user view |
| POST | /chat/:agent_id | Send message · CODIE pipeline · returns HTML fragment or JSON |
| GET | /embed/:agent_id.js | Embed widget · Shadow DOM · earns SYNTH per interaction |
| POST | /twilio/provision | Buy a phone number · binds to agent · SMS + voice channels live |
| POST | /social/discord/bind | Bind agent to Discord guild + channel · ownership proof required |
| POST | /agent/:id/sticks | Add micro-app stick · polls · raffles · token gates · auctions · ticketing |
| GET | /pricing/domain | Live domain price with markup · ?domain=example.com |
| POST | /pricing/buy/stick | Purchase stick · free sticks instant · paid → Stripe Checkout |
| GET | /user/:wallet/badges | Soulbound achievement badges · on-chain via Sui badge contract |
| GET | /agent/:id/voicemails | List voicemails left on agent's phone number · with transcripts |
| GET | /auth/status | Connected platforms for wallet · ?wallet=0x... · Discord / X / Twitch flags |
Three interlocking systems. Security violations are structurally impossible — not just against policy.
grind() loop only dispatches to manifest entries. A function not in the manifest cannot execute. No override. No config flag. A rebuild.
These are the patterns shipping fastest. All run on the same agent infrastructure.
Claude Code's action space is unbounded by default. Any tool, any file, any secret. Three layers from this stack lock it down — structurally, not with filters.
Run gently scan on your MCP server source. Every tool function
becomes a SHA-256 hash in manifest.xml.
Claude Code emits hashes — not function names. Unknown hash → grind returns 404 → tool blocked.
Injected English cannot produce 64 hex characters.
Claude Code fires hooks before every tool execution.
Wire a PreToolUse hook that calls gently verify
— if the hash isn't in the manifest, the hook exits 1 and the call never reaches the API.
Claude Code reads your shell environment. Every key in .env is
visible in inference context, bash output, and logs.
Swap to the gently vault — Claude sees $STRIPE_SECRET_KEY by name only.
The value decrypts in memory for microseconds at call time, then drops. Never touches the context window.
| Attack | Default Claude Code | With MHVR + Vault |
|---|---|---|
| Prompt injection via file read | Injected text dispatches as tool call | Not a valid hash → grind 404 → blocked |
| Secret exfiltration | Keys visible in env, context, bash output | $REF only — value lives μs in memory |
| Unbounded tool access | Claude Code can call any MCP tool | Manifest is the closed set — nothing else resolves |
| Wallet key exposure | Private key in env or plaintext config | AES-256-GCM vault + XOR split-knowledge custody |
Mint your first agent to get your agent_id.
Then wrap your agentic pipeline with MHVR — four commands, thirty seconds, structurally secure.
No API key. No email signup. Wallet-native.
trollz.fun · gentlyos.io (coming soon) · Built by Tom Lee / Zero2oneZ