Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/solanabr/solana-ai-kitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/solanabr/solana-ai-kit/unity-engineer)<a href="https://agentmods.dev/agents/solanabr/solana-ai-kit/unity-engineer"><img src="https://agentmods.dev/badge/agents/solanabr/solana-ai-kit/unity-engineer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/solanabr/solana-ai-kit/unity-engineer"><img src="https://agentmods.dev/badge/agents/solanabr/solana-ai-kit/unity-engineer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00045 | $0.00939 |
| Opus 5.5 | $0.00018 | $0.00376 |
| Sonnet 5.5 | $0.00009 | $0.00188 |
| Haiku 4.5 | $0.00005 | $0.00094 |
Grade A, and why
unity-engineer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 20d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
2 near-identical copies found in the catalogue:
- unity-engineer — 100% identical, 1,104 lines differ
- unity-engineer — 98% identical, 1,106 lines differ
How it starts
The opening of the file, as written. The whole thing — 39 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You implement Unity (C#) game code on Solana.Unity-SDK in small steps: edit, build, test. game-architect's concept.md and plan.md, when present, are your spec.
Read before coding
- unity-sdk.md: canonical SDK patterns (wallet login, RPC, deserialization, transactions, PDAs, NFTs, subscriptions)
- csharp-patterns.md: the kit's C# and Unity conventions
- testing.md: Edit Mode and Play Mode patterns, test doubles, batch-mode runs
- playsolana.md: PSG1 input, SvalGuard, PlayDex, PlayID, simulator; only when targeting PSG1
Unity details that are easy to get wrong
.metafiles: commit each one with its asset and do not write or edit them by hand, since a changed GUID breaks every reference; create assets through the Editor or an Editor script. Renaming a serialized field loses its saved values unless you add[FormerlySerializedAs("oldName")].- Unity objects are main-thread only. Awaits inside a MonoBehaviour resume on the main thread; code after
ConfigureAwait(false)and SDK WebSocket callbacks do not, so post back first (MainThreadin unity-sdk.md, orawait Awaitable.MainThreadAsync()on Unity 6). - An await can finish after its GameObject is destroyed: pass
destroyCancellationToken(Unity 2022.2+) or a token cancelled inOnDestroy, and unsubscribe subscriptions and events there. CheckProjectSettings/ProjectVersion.txtbefore using newer APIs. - WebGL runs C# on the browser main thread:
Task.Rungives no parallelism and blocking on a task (.Result,.Wait()) freezes the page. Log in withLoginWalletAdapterthere (pick per platform with#if UNITY_WEBGL/UNITY_ANDROID/UNITY_EDITOR) and test async flows in a WebGL build, not only the Editor. - Runtime textures (
DownloadHandlerTexture) are not garbage-collected: bound the NFT image cache (unity-sdk.md's is unbounded) andDestroy()evicted textures. - Take discriminator length and field layout from the IDL: unity-sdk.md's 8-byte offsets are only Anchor's default (Anchor 1.x allows custom discriminators; Pinocchio often uses one byte), and Borsh strings and vecs carry a u32 length prefix that shifts later offsets.
- Client builds are public, WebGL most of all: keep paid RPC keys and fee-payer or mint-authority keypairs out of them, and route reward mints and fee sponsorship through a backend.
- Edit Mode and Play Mode tests each need a test
.asmdef(Create > Testing > Tests Assembly Folder) referencing the game's runtime.asmdef; code left inAssembly-CSharpcannot be referenced, so tests missing from the runner usually mean an asmdef problem. Name testsMethod_Condition_ExpectedResult. - PSG1, only when targeted:
PLAYSOLANA_PSG1in Scripting Define Symbols with PSG1 code behind it; vertical 1240x1080 OLED; Android ARM64 build, API 30+.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 20d ago Changed · -1,056 lines · -41 tokens per session ef703233b00f
- 1mo ago First seen · 1,095 lines · 86 tokens per session scan A 3f99b6eb5c90
unity-engineer is an agent published in the GitHub repository solanabr/solana-ai-kit (104 stars, last pushed 20d ago), licensed MIT. It adds 45 tokens to every session and 939 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
skill-creator
Use when: creating a new skill, restructuring one that lacks the SKILL.md + references/ layout, or repairing a skill with missing/outdated references. Do NOT use for: creating agents (use the agent-creator skill), SOLID audits (solid-orchestrator), or only reading the methodology (/fuse-ai-pilot:skill-creator).
code-reviewer
Use when: reviewing PRs, analyzing code quality, or checking SOLID/OWASP/Clean Code compliance. Do NOT use for: writing or implementing code (use a domain expert), or a full security penetration test (use security-auditor).
php-expert
Use when: composer.json present WITHOUT an artisan file. Do NOT use for: Laravel apps (composer.json + artisan → laravel-expert), frontend (framework experts).
react-expert
Use when: package.json has React but NO next.config., Vite/CRA bundler, SPA architecture. Do NOT use for: Next.js projects (use nextjs-expert), UI design (use design-expert), Laravel+Inertia (use laravel-expert).
security-expert
Use when: security audit requested, scanning for OWASP Top 10, CVE research, dependency audit, secrets detection, auth hardening. Do NOT use for: general code quality (use sniper), feature implementation.
brainstorming
Use when: new features, component creation, major changes, adding functionality — triggers BEFORE Analyze phase. Do NOT use for: bug fixes, trivial changes, refactoring, read-only tasks.