Check a tx, EIP-712 payload, text or Base token before your agent signs. Paid per call over x402.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Call before your agent signs anything. Send tx fields (to, data, value, chainId), or typedData (an eth_signTypedData_v4 payload), or untrusted text, with an optional wren-guard policy. Returns block, review or allow, the decoded call and every finding: unlimited approvals, permits, Permit2, setApprovalForAll, EIP-7702 delegation, deployments, injected instructions and, with a policy, unknown recipients, caps and lookalike addresses. Static check, not a simulation. Costs $0.01 USDC on Base per call, paid over x402 (MCP transport): an unpaid call returns a PaymentRequired result, and an x402 MCP client retries with the payment in _meta["x402/payment"]. You sign one USDC authorisation for exactly that price to Wren's wallet: no approvals. Bad input is rejected before anything is charged.
Destination contract or recipient (0x address); omit for a deployment
Calldata, 0x hex
Untrusted text that asked for this action, screened for injected instructions
Native value in wei (decimal or 0x hex)
Optional wren-guard config: allowlist, spenders, caps and flags
Chain id, decimal
eth_signTypedData_v4 payload (instead of a transaction)
Call before your agent signs anything. Send tx fields (to, data, value, chainId), or typedData (an eth_signTypedData_v4 payload), or untrusted text, with an optional wren-guard policy. Returns block, review or allow, the decoded call and every finding: unlimited approvals, permits, Permit2, setApprovalForAll, EIP-7702 delegation, deployments, injected instructions and, with a policy, unknown recipients, caps and lookalike addresses. Static check, not a simulation. Costs $0.01 USDC on Base per call, paid over x402 (MCP transport): an unpaid call returns a PaymentRequired result, and an x402 MCP client retries with the payment in _meta["x402/payment"]. You sign one USDC authorisation for exactly that price to Wren's wallet: no approvals. Bad input is rejected before anything is charged.
| Argument | Type | Description |
|---|---|---|
| to | string | Destination contract or recipient (0x address); omit for a deployment |
| data | string | Calldata, 0x hex |
| text | string | Untrusted text that asked for this action, screened for injected instructions |
| value | string | Native value in wei (decimal or 0x hex) |
| policy | object | Optional wren-guard config: allowlist, spenders, caps and flags |
| chainId | string | Chain id, decimal |
| typedData | object | eth_signTypedData_v4 payload (instead of a transaction) |
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "Destination contract or recipient (0x address); omit for a deployment"
},
"data": {
"type": "string",
"description": "Calldata, 0x hex"
},
"text": {
"type": "string",
"description": "Untrusted text that asked for this action, screened for injected instructions"
},
"value": {
"type": "string",
"description": "Native value in wei (decimal or 0x hex)"
},
"policy": {
"type": "object",
"description": "Optional wren-guard config: allowlist, spenders, caps and flags"
},
"chainId": {
"type": "string",
"description": "Chain id, decimal"
},
"typedData": {
"type": "object",
"description": "eth_signTypedData_v4 payload (instead of a transaction)"
}
}
}Free. Runs one fixed example (an unlimited approval, setApprovalForAll, a never-expiring permit, an EIP-7702 delegation, an injected memo or a normal x402 payment) through the same checker, so you can see the report shape before paying for presign_check.
| Argument | Type | Description |
|---|---|---|
| name* | string | Which fixed example to run |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"enum": [
"unlimited-approval",
"set-approval-for-all",
"permit-signature",
"eip7702-delegation",
"injected-memo",
"x402-payment"
],
"type": "string",
"description": "Which fixed example to run"
}
}
}Call before your agent acts on untrusted text (a reply, DM, web page, tool output or memory). Returns safe, suspicious or malicious with the matched patterns, after decoding base64, hex, Morse, leetspeak, ROT13, reversed and hidden Unicode. Optional known: your own addresses, to flag poisoned lookalikes. Deterministic rules, no LLM. Costs $0.003 USDC on Base per call, paid over x402 (MCP transport): an unpaid call returns a PaymentRequired result, and an x402 MCP client retries with the payment in _meta["x402/payment"]. You sign one USDC authorisation for exactly that price to Wren's wallet: no approvals. Bad input is rejected before anything is charged.
| Argument | Type | Description |
|---|---|---|
| text* | string | The untrusted text to screen (up to 16,384 characters) |
| known | array | Optional: your own 0x addresses, to flag poisoned lookalikes |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The untrusted text to screen (up to 16,384 characters)"
},
"known": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: your own 0x addresses, to flag poisoned lookalikes"
}
}
}Call before your agent approves, receives or sends a Base ERC-20. Returns code size, EIP-7702 delegation, name, symbol, decimals, supply, proxy and upgrade admin, owner or renounced, and which privileged functions the bytecode has (mint, pause, blocklist, fees, limits, trading switch, upgrade). Facts only: no grades, not investment advice. If Base can't be read, nothing is charged. Costs $0.01 USDC on Base per call, paid over x402 (MCP transport): an unpaid call returns a PaymentRequired result, and an x402 MCP client retries with the payment in _meta["x402/payment"]. You sign one USDC authorisation for exactly that price to Wren's wallet: no approvals. Bad input is rejected before anything is charged.
| Argument | Type | Description |
|---|---|---|
| address* | string | The token contract's 0x address on Base |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "The token contract's 0x address on Base"
}
}
}