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.
npx skills add evmts/tevm --skill add-jsonrpc-methodgit clone --depth 1 https://github.com/evmts/tevmWrote 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/skills/evmts/tevm/add-jsonrpc-method)<a href="https://agentmods.dev/skills/evmts/tevm/add-jsonrpc-method"><img src="https://agentmods.dev/badge/skills/evmts/tevm/add-jsonrpc-method.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.00000 | $0.00801 |
| Opus 5 | $0.00000 | $0.00400 |
| Sonnet 5 | $0.00000 | $0.00160 |
| Haiku 4.5 | $0.00000 | $0.00080 |
Grade A, and why
add-jsonrpc-method 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 today.
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.
What it actually says
Add a JSON-RPC method
Input: a method name (eth_*, anvil_*, debug_*, or tevm_*), optionally
its spec and the viem-style action name to expose on the client.
The whole JSON-RPC API lives in packages/actions. Follow the repository's
documentation-driven order (CLAUDE.md): types and JSDoc first, a happy-path
test, the implementation, then the full suite. Match the house pattern of a
neighboring method in the same namespace (one file per item: the params
type, the result type, the handler, the JSON-RPC procedure, the spec).
- Read the spec. For
eth_*use ethereum/execution-apis; foranvil_*use the anvil reference; fordebug_*use geth's debug namespace. Decline a method whose semantics you cannot pin to a spec. - Types. Add
<Method>Params.ts,<Method>Result.ts, and the<Method>JsonRpcRequest/Response/Proceduretypes beside the neighboring method. Full JSDoc with a complete@examplethat imports fromtevmand runs; no...placeholders. - Happy-path test. Add
<method>Handler.spec.tsagainst a realcreateTevmNode()(no mocks). If the method reads chain state, use the snapshot transport from@tevm/test-utilsso the test replays without network. - Implementation.
<method>Handler.jsin JavaScript with JSDoc, using the internal ethereumjs API through the node;<method>Procedure.jsconverting hex JSON-RPC params to the handler's params. Debug logging through the node's logger where a Logger is available. - Register the procedure in the request-handler dispatch table and, if the
input named a client method, add the action to
packages/memory-clientand the decorator inpackages/decorators. Update every request, response, params, result, handler, procedure, request-handler, and method-matrix union that represents neighboring methods; do not leave a method reachable through only one dispatch path. - Barrels. Re-export every new symbol by name through each
index.jsup topackages/actions/src/index.js, thentevm/actions/index.tsand, for client methods,tevm/memory-client/index.ts. - Regenerate the committed tevm emit (
//tevm:dist --write,//tevm:types --write). - Docs. Add the method to the JSON-RPC reference page under
docs/node/pageswith one example. - Changeset.
minorfor the packages touched, one sentence naming the method. - Add a wire-contract test through the public JSON-RPC procedure or transport.
Assert the exact encoded response and prove
JSON.stringify(response)succeeds. NoPromise,bigint, typed array,Error, orundefinedmay cross the boundary. Quantities are minimal hex, byte data is even-length, fixed words are left-padded, and spec-nullable fields usenull. - Cover the method's negative or alternate form and assert its stable error class and numeric JSON-RPC code. When parity with Anvil/geth/viem is claimed, name the reference fixture in the test.
- Run the actions test suite. Every test in the package passes, not only the new one.
PR title: ✨ feat(actions): add <method>. Body: what the method does, the
spec link, and the packages it touches. Do not touch unrelated handlers.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- today First seen · 55 lines · 0 tokens per session scan A 11a092f2eed6
add-jsonrpc-method is a skill published in the GitHub repository evmts/tevm (446 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 801 tokens. 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-09-07.
Other skills, from other repositories
sync-new-data-type
Adds scaffolding for a new Sync data type in Chromium across protocol buffers, DataType definitions, feature flags, controller builders, unit tests, and metrics.
generate-testability-wrappers
DO NOT USE when the target already consumes an injected interface or built-in abstraction such as IFileSystem or TimeProvider, even if the request says "generate a wrapper"; no new wrapper is needed. Use only when C# source calls an ambient/static dependency and no injectable seam exists: first-time TimeProvider…
convex-test
Generate convex-test tests for the app's Convex functions.
platform-apex-test-generate
Generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking strategies, assertion best practices, and disciplined test-fix loops. Use this skill when creating new Apex test classes, improving test coverage, debugging and fixing failing Apex tests, running test execution…
platform-apex-test-run
Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user needs to run Apex tests, check code coverage, fix failing tests, or work with Test.cls / Test.cls files. TRIGGER when: user runs Apex tests, checks code coverage, fixes failing tests, or touches Test.cls / Test.cls…
backend/testing-guide
A guide for writing backend tests: small unit tests, tests that check connected parts such as an API and database, and end-to-end tests that follow a complete user flow.