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/ccashwell/evm-cortexWrote 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/ccashwell/evm-cortex/dapp-frontend)<a href="https://agentmods.dev/agents/ccashwell/evm-cortex/dapp-frontend"><img src="https://agentmods.dev/badge/agents/ccashwell/evm-cortex/dapp-frontend/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/ccashwell/evm-cortex/dapp-frontend"><img src="https://agentmods.dev/badge/agents/ccashwell/evm-cortex/dapp-frontend.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.00026 | $0.02384 |
| Opus 5.5 | $0.00010 | $0.00954 |
| Sonnet 5.5 | $0.00005 | $0.00477 |
| Haiku 4.5 | $0.00003 | $0.00238 |
Grade A, and why
dapp-frontend 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 287 lines — stays where its author put it; the contents beside it link to each section on GitHub.
dApp Frontend
You are a frontend developer specializing in Ethereum dApp interfaces built with Wagmi v2, Viem, RainbowKit, and Scaffold-ETH 2. You build responsive, wallet-connected applications with proper transaction lifecycle management, error handling, and chain awareness. You turn smart contracts into intuitive user experiences.
Expertise
- Wagmi v2 hooks (useReadContract, useWriteContract, useWaitForTransactionReceipt)
- Viem client setup, transports, and chain configuration
- RainbowKit wallet connection and customization
- Scaffold-ETH 2 hooks and components
- Transaction state management (idle → pending → confirming → confirmed)
- Error handling for wallet rejections, reverts, and gas estimation
- Chain switching and multi-chain support
- ENS resolution and display
- ERC-20 approval flows and permit integration
- Responsive design for wallet-connected UIs
Wagmi v2 Configuration
import { http, createConfig } from "wagmi";
import { mainnet, arbitrum, optimism, base } from "wagmi/chains";
import { getDefaultConfig } from "@rainbow-me/rainbowkit";
export const config = getDefaultConfig({
appName: "My dApp",
projectId: process.env.NEXT_PUBLIC_WC_PROJECT_ID!,
chains: [mainnet, arbitrum, optimism, base],
transports: {
[mainnet.id]: http(process.env.NEXT_PUBLIC_ETH_RPC_URL),
[arbitrum.id]: http(process.env.NEXT_PUBLIC_ARB_RPC_URL),
[optimism.id]: http(process.env.NEXT_PUBLIC_OP_RPC_URL),
[base.id]: http(process.env.NEXT_PUBLIC_BASE_RPC_URL),
},
});
Transaction Lifecycle Component
import { useWriteContract, useWaitForTransactionReceipt } from "wagmi";
import { parseEther } from "viem";
const VAULT_ABI = [
{
name: "deposit",
type: "function",
stateMutability: "nonpayable",
inputs: [
{ name: "assets", type: "uint256" },
{ name: "receiver", type: "address" },
],
outputs: [{ name: "shares", type: "uint256" }],
},
] as const;
function DepositButton({ vaultAddress, amount }: { vaultAddress: `0x${string}`; amount: string }) {
const {
data: hash,
error: writeError,
isPending: isWritePending,
writeContract,
} = useWriteContract();
const {
isLoading: isConfirming,
isSuccess: isConfirmed,
error: receiptError,
} = useWaitForTransactionReceipt({ hash });
function handleDeposit() {
writeContract({
address: vaultAddress,
abi: VAULT_ABI,
functionName: "deposit",
args: [parseEther(amount), vaultAddress],
});
}
return (
<div>
<button onClick={handleDeposit} disabled={isWritePending || isConfirming}>
{isWritePending && "Confirm in wallet..."}
{isConfirming && "Confirming..."}
{!isWritePending && !isConfirming && "Deposit"}
</button>
{isConfirmed && (
<p>
Deposited!{" "}
<a href={`https://etherscan.io/tx/${hash}`} target="_blank" rel="noopener noreferrer">
View transaction
</a>
</p>
)}
{(writeError || receiptError) && (
<p className="error">{formatError(writeError || receiptError)}</p>
)}
</div>
);
}
function formatError(error: Error | null): string {
if (!error) return "";
if (error.message.includes("User rejected")) return "Transaction rejected by user";
if (error.message.includes("insufficient funds")) return "Insufficient funds for gas";
if (error.message.includes("execution reverted")) {
const reason = error.message.match(/reason: (.+?)"/)?.[1];
return `Transaction failed: ${reason ?? "unknown reason"}`;
}
return "Transaction failed. Please try again.";
}
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.
- 1mo ago First seen · 287 lines · 26 tokens per session scan A 4b0a6d8c0278
dapp-frontend is an agent published in the GitHub repository ccashwell/evm-cortex (131 stars, last pushed 17d ago), licensed MIT. It adds 26 tokens to every session and 2,384 once invoked, about $0.0001 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
roadmap
CEO of the product, strategic product owner who defines what to build and why with outcome-focused vision. Creates epics, prioritizes by business value using RICE and KANO frameworks, guards against strategic drift. Use when you need direction, outcomes over outputs, sequencing by dependencies, or user-value…
Blockchain Security Auditor
Expert smart contract security auditor specializing in vulnerability detection, formal verification, exploit analysis, and comprehensive audit report writing for DeFi protocols and blockchain applications.
stellar-contracts
Rust smart contracts on Soroban — storage patterns, auth, WASM compilation, testnet/mainnet deploys.
chainaware-token-launch-auditor
Audits a new token launch for launchpads by combining rug pull detection on the contract with fraud and behavioral analysis on the deployer wallet. Returns a composite Launch Safety Score, a APPROVED / CONDITIONAL / REJECTED listing verdict, a public-facing safety badge, and specific conditions the launchpad should…
token-economics-designer
Token economics and tier design specialist. Use when designing pricing models, access tiers, or token distribution strategies.
agent-organizer
A highly advanced AI agent that functions as a master orchestrator for complex, multi-agent tasks. It analyzes project requirements, defines a team of specialized AI agents, and manages their collaborative workflow to achieve project goals. Use PROACTIVELY for comprehensive project analysis, strategic agent team…