signo-public-drafts
Registry code: c5f90c473efa92a5
Keyless access reads a public wallet insights report and drafts inactive agents and Shield permissions for their owner to claim. Three tiers: Notify tells the owner when something happens; Prepare also drafts a ready-to-sign plan the owner signs each time; Execute acts on its own inside a Shield permission the owner signs on chain first (available chains: GET /api/shield/compile). New Execute setup is in early access: an ineligible wallet gets 403 execute_team_only and no proposal is stored. The Shield is Signo's guard contract on the selected chain that enforces the permission; the executor…
- endpoint
- https://app.signo.fi/api/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is signo-public-drafts live?
- Yes — it answered the hub's last check (checked 51m ago). It answered 100% of checks over the last 30 days.
- Is signo-public-drafts free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does signo-public-drafts have?
- 3 tools: wallet_insights_report, signo_draft_agent, signo_draft_permission.
- Is signo-public-drafts safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 3 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
wallet_insights_report unknown 51m ago
Analyze any public onchain wallet and return its Signo Score plus prioritized findings. Covers yield left on the table, leverage safety, LP health, idle capital, dust and unclaimed rewards. Read-only: it inspects public chain data and never moves funds, needs no keys, and requires no connected session — so it works on any address you can name, not just one the caller controls. Returns signoScore (0-100, the Signo Score: how well the wallet's capital is managed, from idle cash, yield against the cash benchmark, unclaimed rewards, the leverage guard and dust; it is not a safety or liquidation-risk score). This public tool cannot read the owner's private Agents, so watch coverage is not_applicable with 'Agent coverage isn't shown here' and signoScore omits that category; the signed-in owner's app score can differ. riskTolerance, walletAge, holdings (every chain's tokens, DeFi positions and loans with USD values, largest first, so you can structure your own view), and a categories array where each entry carries state, headline, detail and a suggested next step. Findings that call for an agent carry agentSuggestion, and the report carries suggestedAgents plus draftWith: exact request and autonomy arguments for the sibling signo_draft_agent tool on this host, so you can draft the agent for the wallet owner to activate. Free.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "address" ], "properties": { "address": { "type": "string", "maxLength": 64, "minLength": 26, "description": "The wallet to analyze — an EVM address (0x + 40 hex) or a Solana base58 address." }, "narrative": { "type": "boolean", "description": "Include a written plain-English summary alongside the structured findings. Slower; defaults to false." } }, "additionalProperties": false }arguments 20 linessigno_draft_agent unknown never probed
Draft a complete inactive Notify or Prepare agent, without an API key. Name the owner wallet when you know it; omit it and the first wallet to sign on the review page owns the agent. It can watch anything the app can: a price threshold or percent move, portfolio movement, a lending health factor (Aave, Spark, Compound V3, Morpho), the owner's own DeFi positions (PTs, LPs, supplied assets, claimables, APY or value changes, days to expiry), Pendle loops, a daily market brief, a recurring schedule (daily, weekly or monthly at a set time, or hourly checks) or any plain-English condition the compiler accepts. Execute is a separate permission flow with its own supported conditions and typed on-chain triggers; Execute is not available for the app's Portfolio move trigger, boxed Pendle PT loops are notify-only, and recurring schedules are not Execute triggers today. Returns a private review_url plus summary, cadence (hourly or daily checks), autonomy, action and expires_at in unix milliseconds. The owner opens the link, connects that wallet, links Telegram and signs once to create the agent. Set autonomy to prepare for an action request; otherwise it is refused as autonomy_mismatch, not silently downgraded. Prepare builds an unsigned plan on each fire; it never spends automatically. No clarification round trip: an ambiguous or unwatchable request is a 422 with the reason, so rephrase and call again. Keyless has no agent-status read yet: the owner sees fires on the Agents page and on Telegram. Automatic execution is the separate signo_draft_permission tool.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "request" ], "properties": { "wallet": { "type": "string", "pattern": "^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$", "description": "Optional. The owner's EVM (0x…) or Solana address, when you know it: then only that wallet can claim the draft. Omit it and the draft is bound to the first wallet that signs on the review page." }, "request": { "type": "string", "maxLength": 2000, "minLength": 8, "description": "The complete condition or recurring schedule in plain English, 8 to 2000 characters, and for Prepare the action to run when it fires. There is no clarification round trip: an ambiguous or unwatchable request is a 422 with the reason, so rephrase and call again." }, "autonomy": { "enum": [ "notify", "prepare" ], "type": "string", "default": "notify", "description": "notify (default): the owner is told when it fires. prepare: the action in the request is stored and pre-planned on fire as an unsigned plan for the owner to sign. A request that includes an action must explicitly choose prepare; otherwise it is refused as autonomy_mismatch, not silently downgraded. Execute is not available here; it needs a Shield mandate." } }, "additionalProperties": false }arguments 30 linessigno_draft_permission unknown never probed
Draft an Execute agent on a deployed Shield chain: when something happens on the owner's wallet, do one action with its funds, inside caps the owner signs on chain (the Shield contract). Inactive until the owner signs on the review link it returns (review_url; also proposal_id, summary, limits, fee_bps, expires_at). No API key. New Execute setup is in early access: a wallet without access gets 403 execute_team_only, no proposal is stored, and the owner can contact [email protected]. Collect: wallet; trigger; action; cap_per (most per execution); budget (lifetime, before fees; the fee comes on top); expiry_days optional, default 30. The wallet need not hold the budget yet. Trigger: { kind: "condition", request } for a supported plain-English Execute condition, e.g. "when XETH drops 10% in 24 hours" (what the Shield cannot read, the hourly check decides); or health_factor, token_balance or price, re-checked on chain, e.g. { kind: "price", asset: "XETH", comparator: "<", value: 3000 }. Execute is not available for the app's Portfolio move trigger; boxed Pendle PT loops are notify-only today, and a recurring schedule is not an Execute trigger. Action: transfer, swap (OKX DEX; one of min_out or max_slippage_bps), vault (ERC-4626), supply (Aave), repay_from_wallet, repay_from_collateral. Assets by symbol or address. Fee 10 bps per firing. Enforced on chain: the Shield re-checks caps, expiry and readable triggers each firing and pulls funds via the owner's allowance; the executor key is held in Google Cloud KMS and usable only by Signo's production service. Checked hourly; one successful execution completes a trigger by default, and public drafts do not opt into repay-from-collateral continuation. The signing service allows at most two attempts for one permission in a rolling hour. A successful firing reports Goal, Done, Remaining, Reasoning and Next. Each firing is an on-chain tx; revocable on the Agents page. No keyless status read yet.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "schema_version", "wallet", "chain_id", "action", "trigger", "budget", "cap_per" ], "properties": { "action": { "anyOf": [ { "type": "object", "required": [ "kind", "asset", "recipient" ], "properties": { "kind": { "type": "string", "const": "transfer" }, "asset": { "type": "string", "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9.$_-]{1,16})$", "description": "The token: the symbol Signo uses on the selected chain (X Layer accepts USDT for USDT0), or a symbol on its token catalog (OKX on X Layer, LI.FI on Arbitrum) (a symbol several tokens share is refused with the candidates so you can pass the address), or its ERC-20 address. Symbols are names, not an allowlist; Aave actions need an Aave reserve." }, "recipient": { "type": "string", "pattern": "^0x[0-9a-fA-F]{40}$", "description": "Fixed recipient; never the owner wallet itself." } }, "description": "Send the asset to one fixed recipient.", "additionalProperties": false }, { "type": "object", "required": [ "kind", "asset", "token_out" ], "properties": { "kind": { "type": "string", "const": "swap" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "min_out": { "type": "string", "pattern": "^\\d{1,30}(\\.\\d{1,18})?$", "description": "Output-token floor per execution. Give exactly one of min_out or max_slippage_bps." }, "token_out": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "max_slippage_bps": { "type": "integer", "maximum": 1000, "minimum": 1, "description": "Slippage bound in basis points, 1 to 1000. Give exactly one of min_out or max_slippage_bps." } }, "description": "Swap the asset through OKX DEX into token_out.", "additionalProperties": false }, { "type": "object", "required": [ "kind", "vault" ], "properties": { "kind": { "type": "string", "const": "vault" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset", "description": "The token: the symbol Signo uses on the selected chain (X Layer accepts USDT for USDT0), or a symbol on its token catalog (OKX on X Layer, LI.FI on Arbitrum) (a symbol several tokens share is refused with the candidates so you can pass the address), or its ERC-20 address. Symbols are names, not an allowlist; Aave actions need an Aave reserve." }, "vault": { "type": "string", "pattern": "^0x[0-9a-fA-F]{40}$" }, "max_slippage_bps": { "type": "integer", "default": 0, "maximum": 1000, "minimum": 0 } }, "description": "Deposit the asset into an ERC-4626 vault.", "additionalProperties": false }, { "type": "object", "required": [ "kind", "asset" ], "properties": { "kind": { "type": "string", "const": "supply" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset" } }, "description": "Supply the asset into Aave on the selected chain.", "additionalProperties": false }, { "type": "object", "required": [ "kind", "asset" ], "properties": { "kind": { "type": "string", "const": "repay_from_wallet" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset" } }, "description": "Repay Aave debt in the asset from the wallet's own balance.", "additionalProperties": false }, { "type": "object", "required": [ "kind", "collateral", "debt", "target_health_factor" ], "properties": { "debt": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "kind": { "type": "string", "const": "repay_from_collateral" }, "collateral": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "max_slippage_bps": { "$ref": "#/properties/action/anyOf/1/properties/max_slippage_bps" }, "target_health_factor": { "type": "number", "maximum": 10, "exclusiveMinimum": 1 } }, "description": "Repay Aave debt by swapping the collateral asset, until the health factor reaches the target.", "additionalProperties": false } ], "description": "What a firing does: transfer (to a fixed recipient), swap (through OKX DEX; exactly one of min_out or max_slippage_bps), vault (ERC-4626 deposit), supply (into Aave), repay_from_wallet (repay Aave debt from the wallet's balance), repay_from_collateral (repay Aave debt by selling collateral to a target health factor)." }, "budget": { "type": "string", "pattern": "^\\d{1,30}(\\.\\d{1,18})?$", "description": "Lifetime input-token budget, before fees. The Signo fee comes on top: the permission is registered with room for it, so 50 lifetime and 5 per execution allows ten full executions. The wallet does not need to hold it yet; each execution checks the balance for that execution. Must be at least cap_per, and may equal it." }, "wallet": { "type": "string", "pattern": "^0x[0-9a-fA-F]{40}$", "description": "The owner's EVM wallet; only this wallet can sign the permission on the review page. It does not need to hold the budget yet: each firing checks the balance then." }, "cap_per": { "type": "string", "pattern": "^\\d{1,30}(\\.\\d{1,18})?$", "description": "Maximum input-token spend per execution, before the fee. At most budget." }, "trigger": { "anyOf": [ { "type": "object", "required": [ "kind", "comparator", "value" ], "properties": { "kind": { "type": "string", "const": "health_factor" }, "value": { "type": "number", "maximum": 100, "exclusiveMinimum": 0 }, "comparator": { "enum": [ "<", "<=", ">", ">=" ], "type": "string" } }, "additionalProperties": false }, { "type": "object", "required": [ "kind", "asset", "comparator", "value" ], "properties": { "kind": { "type": "string", "const": "token_balance" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "value": { "type": "number", "maximum": 9007199254740991, "minimum": 0 }, "comparator": { "$ref": "#/properties/trigger/anyOf/0/properties/comparator" } }, "additionalProperties": false }, { "type": "object", "required": [ "kind", "asset", "comparator", "value" ], "properties": { "kind": { "type": "string", "const": "price" }, "asset": { "$ref": "#/properties/action/anyOf/0/properties/asset" }, "value": { "type": "number", "maximum": 1000000000000, "description": "USD price of the asset, read on chain at fire time from the Aave oracle on the selected chain (Chainlink-backed).", "exclusiveMinimum": 0 }, "comparator": { "$ref": "#/properties/trigger/anyOf/0/properties/comparator" } }, "additionalProperties": false }, { "type": "object", "required": [ "kind", "request" ], "properties": { "kind": { "type": "string", "const": "condition" }, "request": { "type": "string", "maxLength": 2000, "minLength": 8, "description": "A supported plain-English Execute condition: a price threshold or percent move, a lending health factor, the wallet's DeFi positions, a yield, or another measurable condition the compiler accepts. Compiled by the same compiler as the app; the part the Shield can read is pinned and re-checked on chain, the rest is decided by the hourly check. Execute is not available for the app's Portfolio move trigger; boxed Pendle PT loops are notify-only today. A recurring schedule is not an Execute trigger." } }, "additionalProperties": false } ], "description": "When it fires: a supported plain-English Execute condition (the part the Shield can read is pinned and re-checked on chain; the rest is decided by the hourly check), or one of three typed triggers the Shield reads on chain: health_factor (the wallet's Aave health factor), token_balance (the wallet's balance of an asset), price (the asset's current USD price from the Aave oracle on the selected chain, Chainlink-backed; a current price only, never a move over a window), each with a comparator and a value. Execute is not available for the app's Portfolio move trigger; boxed Pendle PT loops are notify-only today. A recurring schedule is not an Execute trigger. A crossing fires once; it re-arms when the condition goes false again." }, "chain_id": { "type": "integer", "description": "A deployed Shield chain id, returned by GET /api/shield/compile." }, "expiry_days": { "type": "integer", "default": 30, "maximum": 90, "minimum": 1, "description": "Days until the permission can no longer fire, 1 to 90." }, "schema_version": { "type": "number", "const": 2, "description": "Always 2." } }, "additionalProperties": false }arguments 316 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idc5f90c473efa92a5.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/c5f90c473efa92a5/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/c5f90c473efa92a5?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.