SafeHands
Live on Pharos Pacific Mainnet

Every transaction an agent proposes is measured before it is signed.

An agent signs whatever it decides to, and one unlimited approval empties the wallet. SafeHands reads the intent and the exact bytes first, then answers: allow, warn, or block, with named reasons.

  • Reads the intent, then the exact calldata
  • Holds no key, signs nothing
  • One score on a published scale, reasons named
Live inspector cycling specimens
Specimen
/ 100

    Verified against first-party evidence on chain 1672
    Pharos Morpho AquaFlux OKX Chainlink USDC

    Measured, not marketed.

    Every figure here is verifiable in the source.

    Custody0Private keys held, by design. It signs nothing.
    Tooling33Safety tools across MCP, HTTP and CLI
    Verified12On-chain registry entries proven against first-party evidence
    Threshold70The published score at which it stops being a warning
    Built for Real-Fi

    Real-world value carries obligations a memecoin never did.

    Pharos settles tokenized assets and real-world payments. A tokenized T-bill or invoice is not a memecoin, and an agent can repeat one mistake a thousand times. SafeHands is the pre-signature check for the obligations those assets carry, live on mainnet today.

    Asset legitimacy
    Is this the registered asset, or a spoof with a mint backdoor? Token-registry classification plus honeypot and ownership-privilege checks, before an agent touches it.
    Live
    Transfer restrictions
    Who may move it, and how much? A deterministic policy engine with spend caps, approval limits and human-in-the-loop, plus permissioned-token checks that catch an ineligible or frozen transfer before it reverts.
    Live
    Audit trail
    Provable evidence each transfer was checked. An opt-in on-chain attestation records only hashed context, never amounts, recipients or intent.
    Live
    Settlement discipline
    Capped, verified stablecoin payments. x402 and USDC rails with per-call and daily caps, so an agent cannot drain a treasury on a malicious invoice.
    Live
    Counterparty trust
    A track record you can query on-chain. A reputation oracle reads each address's count and recency of verified-safe actions, composable by any Pharos contract.
    Live

    SafeHands is not an issuer, a KYC provider, or a transfer agent, and it does not make a flow compliant on its own. It is one deterministic layer: the pre-signature checkpoint and audit trail those flows sit on.

    01What it catches

    The signatures an agent should never send.

    Six real checks, each read from the intent and then the exact bytes. The verdict is the one the inspector above would return, on the same scale.

    Block approve(spender, UNLIMITED)

    An unbounded grant hands a spender the whole balance, indefinitely.

    Warn transfer → 0xa1…f30c no history

    A brand-new recipient could be a typo, or an address-poisoning lookalike.

    Warn spender 0x4d…c1b2 not in registry

    An unverified counterparty never clears on its own. Recognition needs proof.

    Warn price feed STALE

    A stale or missing Chainlink feed is reported, never quoted.

    Block codehash ≠ recorded

    A verified address whose live bytecode changed under you. Caught by code hash.

    Block RWA leg wallet not eligible

    A permissioned transfer that would revert. Caught before you sign, not after.

    02How it works

    Four steps, and only one is ours.

    STEP 01

    The agent plans

    Your model builds the transaction and holds the intent, never a key.

    STEP 02

    The engine reads

    SafeHands checks the intent, then the exact calldata, against on-chain evidence.

    STEP 03

    A verdict, not a vibe

    One score on a published scale, reasons named. Same bytes in, same verdict out.

    STEP 04

    Your wallet acts

    Only what cleared reaches a signature. SafeHands never touches a key.

    A firewall that cannot move funds is one nobody has to trust with funds. That is the whole design.

    03Why trust it

    Five properties, each one checkable.

    Deterministic

    Computed by code, traceable to a named check. Same bytes in, same answer out.

    Registry-backed trust

    Recognition comes only from first-party on-chain evidence. Being listed somewhere is not trust.

    Fail-closed

    Missing evidence reads as unknown and raises the verdict. Aggregation can only escalate.

    Zero-custody

    No keys, no signing on the hosted surface. Write paths are off by default, for self-hosting only.

    Live on mainnet

    Running on Pharos Pacific, chain 1672, with live Chainlink prices and on-chain risk records.

    And what it never does.

    [X]

    Never holds a key, and never signs or broadcasts on the hosted surface.

    [X]

    Never quotes a price it did not read live. A stale feed is reported, not guessed.

    [X]

    Never grants trust from anywhere but the registry's first-party evidence.

    [X]

    Never downgrades a block. Severity only ever goes up.

    A verdict binds to the exact bytes it inspected. Act on different bytes, or after it expires, and it no longer applies.

    04Who it's for

    One engine, three ways in.

    For agent builders

    Self-host the engine

    Import the SDK, run the MCP server, or call the CLI. The read-only checks cost nothing.

    Wire it up
    For hosted use

    Ask the hosted agent

    The safehands agent on Anvita Flow needs no install. Ask in plain words, get the same verdict.

    Open on Anvita Flow
    For protocols

    Get recognized

    Put your contracts in the registry with first-party evidence, so agents recognize them by code hash.

    See the registry
    05Integrate

    One command before you sign.

    Install SafeHands as an agent skill, then ask it to run a preflight before any signature. It runs as a standard MCP server, so it drops into any MCP client.

    Works with
    npx skills add SZtch/safehands-pharos
    Ready when your agent is

    Put a firewall in front of your agent.

    Self-host it free, or ask the hosted agent on Anvita Flow. Same question, same verdict, either way.