accueil / serveurs / Finance & Paiement / io.github.Fizzl13/presign-guard
io.github.Fizzl13/presign-guard
serveur MCP (Model Context Protocol) · presign-guard 1.6.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.Fizzl13/presign-guard est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.Fizzl13/presign-guard » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 8 outils
- feedback≈ 324 tokens
Report a bug, a missing feature or anything else about this service, in a structured way. Free. A person reads every report; nothing is run or changed automatically.
Paramètres, retour & exemple (4)
Paramètrestype· string · optionnel · bug | feature | other
bug, feature (something missing) or othercontact· string · optionnel
Optional: how to reach you about itmessage· string · requis
What happened or what you needendpoint· string · optionnel
Optional: the route or tool it is about, e.g. /v1/token
Exemple d'appel{"name": "feedback", "arguments": {"message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": "texte", "note": "texte", "type": "texte", "service": "texte", "received": true}} - presign_check≈ 2024 tokens
Paid ($0.01 via x402 in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger): call this before you sign. Send the transaction, token approval, EIP-712 signature (Permit, Permit2, EIP-3009 x402 payment, Seaport) or EIP-7702 authorization (type authorization: delegating the wallet to a contract, the sweeper trap) your agent is about to sign; get back green, orange or red with reason codes: who gets access, whether the spender or recipient is flagged, sanctioned (OFAC SDN) or unverified, unlimited allowances, and the token itself (honeypot, fake look-alike, high tax). On Solana (type solana, the base64 wire transaction): every instruction decoded and the transaction simulated (token account takeovers, System Assign, unlimited delegates, durable nonces, hidden owner or delegate changes). On the XRP Ledger (type xrpl, the unsigned tx JSON): account takeovers (SetRegularKey, SignerListSet, disabling the master key), fake RLUSD, partial payments, missing destination tags, trust-line and issuer risks, and DEX offers far below market. On Algorand (type algorand, base64 msgpack transaction or group in transactions): rekeys, closing the account or an asset to someone else, clawbacks, fake USDC, app update/delete/clear, simulated. Only proceed on green; on orange ask your user; never sign on red. Same as POST /v1/check. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.
Paramètres, retour & exemple (22)
Paramètresto· string · optionnel
transaction: the target contracttx· object · optionnel
xrpl: the unsigned transaction JSON (TransactionType, Account, Destination, Amount, …), including CredentialCreate, CredentialAccept, DelegateSet, Batch (every inner transaction is judged), vault deposits and withdrawals (VaultDeposit, VaultWithdraw) and loans (LoanSet, LoanPay)data· string · optionnel
transaction: 0x-prefixed calldatafrom· string · optionnel
transaction, message or authorization, optional: your wallet address (authorization: its current delegation is shown); the transaction is then simulated (what really leaves and arrives; orange HIDDEN_APPROVAL, SIMULATION_NFT_OUT, SIMULATION_FAILS) and its recipients are compared with who this wallet paid before (red ADDRESS_POISONING for a look-alike)type· string · requis · approval | transaction | signature | authorization | message | solana | xrpl | algorand
What the agent is about to sign; authorization = an EIP-7702 authorization delegating the wallet to the contract in address; message = a plain personal_sign / eth_sign message in message; solana = a Solana transaction in transaction; xrpl = an unsigned XRP Ledger transaction in tx; algorand = an Algorand transaction in transaction, or a group in transactionsx402· object · optionnel
optional, EIP-3009 payments only: the x402 payment requirements you are paying ({ accepted: { scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra } }, one entry of the 402's accepts); red when the signature pays more, someone else, another token or chainnonce· string · optionnel
authorization, optional: the authorization noncetoken· string · optionnel
approval: the token contractvalue· string · optionnel
transaction: native value in weiamount· string · optionnel
approval: amount in base units (0 = revoke)intent· string · optionnel
optional: what you are trying to do, in one sentence (e.g. "swap 10 USDC for ETH on Uniswap"); orange INTENT_MISMATCH when signing would do more or something elsemethod· string · optionnel · personal_sign | eth_sign
message: how it is signed (default personal_sign); eth_sign is always redorigin· string · optionnel
optional: the site asking for the signature or transaction (URL or hostname); a domain under 30 days old is orangeaddress· string · optionnel
authorization: the contract the EIP-7702 authorization delegates the wallet to (0x0…0 clears a delegation). Any delegation hands the contract the whole wallet: orange EIP7702_AUTHORIZATION unless the contract is on GoPlus's trust list; red AUTHORIZATION_TO_NO_CONTRACT, AUTHORIZATION_TO_UNVERIFIED_CONTRACT, AUTHORIZATION_TO_FLAGGED_CONTRACT, SANCTIONED_ADDRESSchainId· integer · optionnel
EVM chain id, required for approval, transaction, signature and authorization: 1, 10, 56, 137, 8453, 42161 (8453 = Base); optional for messagemessage· string · optionnel
message: the text or 0x-hex about to be signed; a Sign-In with Ethereum message for another site than origin is red, unreadable bytes are orangenetwork· string · optionnel · xrpl:0 | xrpl:1
xrpl: xrpl:0 (mainnet, default) or xrpl:1 (testnet)spender· string · optionnel
approval: who gets the allowancetypedData· ? · optionnel
signature: the exact eth_signTypedData_v4 payload (Permit, Permit2, EIP-3009 x402 payment, Seaport)transaction· string · optionnel
solana: the base64 wire transaction about to be signed; decoded and simulated (red SOLANA_TOKEN_ACCOUNT_TAKEOVER, SOLANA_ACCOUNT_ASSIGN; orange SOLANA_UNLIMITED_DELEGATE, SOLANA_DURABLE_NONCE, HIDDEN_APPROVAL, SIMULATION_FAILS). algorand: one base64 msgpack transaction (unsigned or signed); red ALGORAND_REKEY, ALGORAND_CLOSE_ACCOUNT, ALGORAND_ASSET_CLOSE, ALGORAND_FAKE_STABLECOIN; simulatedtransactions· array · optionnel
algorand: an atomic group, each a base64 msgpack transaction; send the whole group so every transaction is checkedauthorizationChainId· integer · optionnel
authorization, optional: the chain id inside the authorization, chainId (default) or 0 = valid on every chain (orange AUTHORIZATION_ALL_CHAINS)
Exemple d'appel{"name": "presign_check", "arguments": {"type": "approval"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"accepts": "texte", "reasons": "texte", "receipt": "texte", "verdict": "texte", "version": "texte"}} - presign_check_explain≈ 1855 tokens
Paid ($0.03 via x402 in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger): the same verdict and reason codes as presign_check, plus a 3 to 5 sentence plain-language explanation a person can read before approving (lang en or nl). Same as POST /v1/check/explain. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.
Paramètres, retour & exemple (23)
Paramètresto· string · optionnel
transaction: the target contracttx· object · optionnel
xrpl: the unsigned transaction JSON (TransactionType, Account, Destination, Amount, …), including CredentialCreate, CredentialAccept, DelegateSet, Batch (every inner transaction is judged), vault deposits and withdrawals (VaultDeposit, VaultWithdraw) and loans (LoanSet, LoanPay)data· string · optionnel
transaction: 0x-prefixed calldatafrom· string · optionnel
transaction, message or authorization, optional: your wallet address (authorization: its current delegation is shown); the transaction is then simulated (what really leaves and arrives; orange HIDDEN_APPROVAL, SIMULATION_NFT_OUT, SIMULATION_FAILS) and its recipients are compared with who this wallet paid before (red ADDRESS_POISONING for a look-alike)lang· string · optionnel · en | nl
Language of the explanation (default en)type· string · requis · approval | transaction | signature | authorization | message | solana | xrpl | algorand
What the agent is about to sign; authorization = an EIP-7702 authorization delegating the wallet to the contract in address; message = a plain personal_sign / eth_sign message in message; solana = a Solana transaction in transaction; xrpl = an unsigned XRP Ledger transaction in tx; algorand = an Algorand transaction in transaction, or a group in transactionsx402· object · optionnel
optional, EIP-3009 payments only: the x402 payment requirements you are paying ({ accepted: { scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra } }, one entry of the 402's accepts); red when the signature pays more, someone else, another token or chainnonce· string · optionnel
authorization, optional: the authorization noncetoken· string · optionnel
approval: the token contractvalue· string · optionnel
transaction: native value in weiamount· string · optionnel
approval: amount in base units (0 = revoke)intent· string · optionnel
optional: what you are trying to do, in one sentence (e.g. "swap 10 USDC for ETH on Uniswap"); orange INTENT_MISMATCH when signing would do more or something elsemethod· string · optionnel · personal_sign | eth_sign
message: how it is signed (default personal_sign); eth_sign is always redorigin· string · optionnel
optional: the site asking for the signature or transaction (URL or hostname); a domain under 30 days old is orangeaddress· string · optionnel
authorization: the contract the EIP-7702 authorization delegates the wallet to (0x0…0 clears a delegation). Any delegation hands the contract the whole wallet: orange EIP7702_AUTHORIZATION unless the contract is on GoPlus's trust list; red AUTHORIZATION_TO_NO_CONTRACT, AUTHORIZATION_TO_UNVERIFIED_CONTRACT, AUTHORIZATION_TO_FLAGGED_CONTRACT, SANCTIONED_ADDRESSchainId· integer · optionnel
EVM chain id, required for approval, transaction, signature and authorization: 1, 10, 56, 137, 8453, 42161 (8453 = Base); optional for messagemessage· string · optionnel
message: the text or 0x-hex about to be signed; a Sign-In with Ethereum message for another site than origin is red, unreadable bytes are orangenetwork· string · optionnel · xrpl:0 | xrpl:1
xrpl: xrpl:0 (mainnet, default) or xrpl:1 (testnet)spender· string · optionnel
approval: who gets the allowancetypedData· ? · optionnel
signature: the exact eth_signTypedData_v4 payload (Permit, Permit2, EIP-3009 x402 payment, Seaport)transaction· string · optionnel
solana: the base64 wire transaction about to be signed; decoded and simulated (red SOLANA_TOKEN_ACCOUNT_TAKEOVER, SOLANA_ACCOUNT_ASSIGN; orange SOLANA_UNLIMITED_DELEGATE, SOLANA_DURABLE_NONCE, HIDDEN_APPROVAL, SIMULATION_FAILS). algorand: one base64 msgpack transaction (unsigned or signed); red ALGORAND_REKEY, ALGORAND_CLOSE_ACCOUNT, ALGORAND_ASSET_CLOSE, ALGORAND_FAKE_STABLECOIN; simulatedtransactions· array · optionnel
algorand: an atomic group, each a base64 msgpack transaction; send the whole group so every transaction is checkedauthorizationChainId· integer · optionnel
authorization, optional: the chain id inside the authorization, chainId (default) or 0 = valid on every chain (orange AUTHORIZATION_ALL_CHAINS)
Exemple d'appel{"name": "presign_check_explain", "arguments": {"type": "approval"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"accepts": "texte", "reasons": "texte", "receipt": "texte", "verdict": "texte", "version": "texte", "explanation": "texte"}} - presign_quick_check≈ 1454 tokens
Free: the green/orange/red verdict only, for a transaction, token approval, EIP-712 signature, XRP Ledger transaction (type xrpl) or Algorand transaction (type algorand) your agent is about to sign. Limited to 10 calls per hour. For the reason codes and details use presign_check ($0.01); for a plain-language explanation presign_check_explain ($0.03).
Paramètres, retour & exemple (22)
Paramètresto· string · optionnel
transaction: the target contracttx· object · optionnel
xrpl: the unsigned transaction JSON (TransactionType, Account, Destination, Amount, …), including CredentialCreate, CredentialAccept, DelegateSet, Batch (every inner transaction is judged), vault deposits and withdrawals (VaultDeposit, VaultWithdraw) and loans (LoanSet, LoanPay)data· string · optionnel
transaction: 0x-prefixed calldatafrom· string · optionnel
transaction, message or authorization, optional: your wallet address (authorization: its current delegation is shown); the transaction is then simulated (what really leaves and arrives; orange HIDDEN_APPROVAL, SIMULATION_NFT_OUT, SIMULATION_FAILS) and its recipients are compared with who this wallet paid before (red ADDRESS_POISONING for a look-alike)type· string · requis · approval | transaction | signature | authorization | message | solana | xrpl | algorand
What the agent is about to sign; authorization = an EIP-7702 authorization delegating the wallet to the contract in address; message = a plain personal_sign / eth_sign message in message; solana = a Solana transaction in transaction; xrpl = an unsigned XRP Ledger transaction in tx; algorand = an Algorand transaction in transaction, or a group in transactionsx402· object · optionnel
optional, EIP-3009 payments only: the x402 payment requirements you are paying ({ accepted: { scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra } }, one entry of the 402's accepts); red when the signature pays more, someone else, another token or chainnonce· string · optionnel
authorization, optional: the authorization noncetoken· string · optionnel
approval: the token contractvalue· string · optionnel
transaction: native value in weiamount· string · optionnel
approval: amount in base units (0 = revoke)intent· string · optionnel
optional: what you are trying to do, in one sentence (e.g. "swap 10 USDC for ETH on Uniswap"); orange INTENT_MISMATCH when signing would do more or something elsemethod· string · optionnel · personal_sign | eth_sign
message: how it is signed (default personal_sign); eth_sign is always redorigin· string · optionnel
optional: the site asking for the signature or transaction (URL or hostname); a domain under 30 days old is orangeaddress· string · optionnel
authorization: the contract the EIP-7702 authorization delegates the wallet to (0x0…0 clears a delegation). Any delegation hands the contract the whole wallet: orange EIP7702_AUTHORIZATION unless the contract is on GoPlus's trust list; red AUTHORIZATION_TO_NO_CONTRACT, AUTHORIZATION_TO_UNVERIFIED_CONTRACT, AUTHORIZATION_TO_FLAGGED_CONTRACT, SANCTIONED_ADDRESSchainId· integer · optionnel
EVM chain id, required for approval, transaction, signature and authorization: 1, 10, 56, 137, 8453, 42161 (8453 = Base); optional for messagemessage· string · optionnel
message: the text or 0x-hex about to be signed; a Sign-In with Ethereum message for another site than origin is red, unreadable bytes are orangenetwork· string · optionnel · xrpl:0 | xrpl:1
xrpl: xrpl:0 (mainnet, default) or xrpl:1 (testnet)spender· string · optionnel
approval: who gets the allowancetypedData· ? · optionnel
signature: the exact eth_signTypedData_v4 payload (Permit, Permit2, EIP-3009 x402 payment, Seaport)transaction· string · optionnel
solana: the base64 wire transaction about to be signed; decoded and simulated (red SOLANA_TOKEN_ACCOUNT_TAKEOVER, SOLANA_ACCOUNT_ASSIGN; orange SOLANA_UNLIMITED_DELEGATE, SOLANA_DURABLE_NONCE, HIDDEN_APPROVAL, SIMULATION_FAILS). algorand: one base64 msgpack transaction (unsigned or signed); red ALGORAND_REKEY, ALGORAND_CLOSE_ACCOUNT, ALGORAND_ASSET_CLOSE, ALGORAND_FAKE_STABLECOIN; simulatedtransactions· array · optionnel
algorand: an atomic group, each a base64 msgpack transaction; send the whole group so every transaction is checkedauthorizationChainId· integer · optionnel
authorization, optional: the chain id inside the authorization, chainId (default) or 0 = valid on every chain (orange AUTHORIZATION_ALL_CHAINS)
Exemple d'appel{"name": "presign_quick_check", "arguments": {"type": "approval"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "verdict": "green"}} - screen_wallet≈ 763 tokens
Paid ($0.01 via x402 in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger): call this before your agent pays an address, or before accepting money from one. Send any chain's wallet address (EVM 0x..., Solana, Tron, Bitcoin, XRP Ledger, Algorand, or another currency OFAC lists). Get back green/orange/red: red SANCTIONED_ADDRESS with the SDN entry (name, programs, currency) when the address is on the OFAC SDN list, red or orange when GoPlus reports theft, phishing, laundering or mixer use (EVM). Never pay or accept funds on red. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
The wallet address to screen, any chain: EVM (0x...), Solana, Tron, Bitcoin, XRP Ledger, Algorand, or another currency OFAC lists
Exemple d'appel{"name": "screen_wallet", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"grade": "texte", "accepts": "texte", "reasons": "texte", "receipt": "texte", "verdict": "texte", "version": "texte", "one_liner": "texte", "sanctions": "texte"}} - token_quick_verdict≈ 338 tokens
Free: the green/orange/red verdict and grade only, for a Solana or EVM token your agent is about to buy, hold or accept. Limited to 10 free calls per hour (shared with presign_quick_check). For the reasons, one-line summary and market data use token_verdict ($0.01).
Paramètres, retour & exemple (2)
Paramètreschain· string · requis · solana | base | ethereum | arbitrum | optimism | polygon | bsc | xrpl
Chain the token lives onaddress· string · requis
Solana mint address (base58), EVM token contract (0x...), XRPL token as CURRENCY.rIssuer, or Algorand asset id (e.g. 31566704)
Exemple d'appel{"name": "token_quick_verdict", "arguments": {"chain": "solana", "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "grade": "texte", "verdict": "green"}} - token_verdict≈ 774 tokens
Paid ($0.01 via x402 in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger): call this before your agent buys, holds or accepts a token. Send the chain (solana, base, ethereum, arbitrum, optimism, polygon, bsc, xrpl, algorand) and the token address, mint, CURRENCY.rIssuer or Algorand asset id; get back green/orange/red, a grade (SAFE, CAUTION, RISKY, AVOID), reason codes (mint or freeze authority still active, honeypot, tax or transfer fee, LP not locked, low liquidity, new token, concentrated holders, rugged), a one-line summary, and market data (price, liquidity, market cap, 24h volume, age). Same as GET /v1/token. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.
Paramètres, retour & exemple (2)
Paramètreschain· string · requis · solana | base | ethereum | arbitrum | optimism | polygon | bsc | xrpl
Chain the token lives onaddress· string · requis
Solana mint address (base58), EVM token contract (0x...), XRPL token as CURRENCY.rIssuer, or Algorand asset id (e.g. 31566704)
Exemple d'appel{"name": "token_verdict", "arguments": {"chain": "solana", "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"grade": "texte", "accepts": "texte", "reasons": "texte", "receipt": "texte", "verdict": "texte", "version": "texte", "one_liner": "texte"}} - wallet_approvals≈ 914 tokens
Paid ($0.02 via x402 in USDC on Base, Solana, Algorand or Stellar, or in RLUSD on the XRP Ledger): audit the open token approvals of a wallet on an EVM chain (base, ethereum, arbitrum, optimism, polygon, bsc) or on Solana, for example your agent's own wallet as a periodic check. Get back green/orange/red, a grade, a one-line summary and every approval with its spender. EVM, every ERC-20 allowance: flagged malicious (red), a plain wallet, on a doubt list, an unverified contract or an unlimited allowance to a spender not on the GoPlus trust list (orange), with a revoke.cash link. Solana, every SPL token delegation (Approve): a delegate on the OFAC SDN list (red), a delegate that is a plain wallet or an unlimited delegation (orange), with the token account to revoke on; Token-2022 tokens with a permanent delegate are listed too. NFT approvals are not covered. Same as GET /v1/approvals. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.
Paramètres, retour & exemple (2)
Paramètreschain· string · requis · base | ethereum | arbitrum | optimism | polygon | bsc | solana
Chain to audit: an EVM chain (ERC-20 allowances) or solana (SPL token delegations)address· string · requis
Wallet address (0x... on EVM, base58 on Solana)
Exemple d'appel{"name": "wallet_approvals", "arguments": {"chain": "base", "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"grade": "texte", "accepts": "texte", "reasons": "texte", "receipt": "texte", "verdict": "texte", "version": "texte", "approvals": "texte", "one_liner": "texte", "revokeUrl": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».