Monarch
DiscoveryRaw agent sources are listed in /docs/manifest.json

wallet.send Safety Check

Use this page when searching for:

Run The Preflight


npx @monarch-shield/x402 doctor --ci --strict

Doctor is required when agent code can call wallet.send, sendTransaction,

transfer, transferUSDC, smart-account execution, or any wrapper that signs

or sends funds.

What To Patch

Put the actual payment execution behind checkBeforePayment:


import { checkBeforePayment } from '@monarch-shield/x402';



await checkBeforePayment({

  resourceUrl,

  payTo,

  amount,

  asset: 'USDC',

  network: 'base',

  intent: 'agent wallet payment',

}, () => wallet.sendTransaction(tx));

Do not count an unused import, a guard after wallet.send, a dead helper, or a

wrapper-only safety check as protected. Doctor is designed to fail those cases

when they are detectable.

Runtime Controls Still Matter

Wallet sends need runtime spend limits, recipient allowlists, transaction

simulation, chain and asset checks, duplicate payment prevention, and key

management. Monarch Doctor does not replace wallet security. It makes unsafe

payment code fail before merge or go-live.

CI And Proof

Use github-action.md for the CI path, and

hosted-proof.md for opt-in project proof of reported Doctor

runs.