Security

How Senddy keeps your funds and data safe.

Architecture#

Senddy is designed as a non-custodial system. Your funds are held in audited smart contracts — not in a company bank account. No one at Senddy can move, freeze, or access your money.

Smart contract security#

  • Audited by independent security researchers
  • Upgradeable and access-controlled — admin functions are restricted to the contract owner (production deployments should use a timelock or multisig; that delay is an ops control, not currently enforced inside the pool itself)
  • Open source — all contract code is publicly verifiable
  • On-chain Merkle tip checks — spends must cite a root the pool already knows (isKnownRoot), so a poisoned off-chain tree alone cannot invent a payable note

Zero-knowledge proofs#

  • Proofs are generated on your device — no server ever sees your transaction details
  • The proving system (UltraHonk) is based on well-studied cryptographic primitives and uses a universal trusted setup
  • Circuits are written in Noir and have been reviewed for correctness

Attestor security#

  • Runs in a hardware-isolated trusted execution environment (TEE) — isolated from the host, no persistent storage, no shell access
  • Signing key managed by a hardware security module (HSM) with an enclave-restricted key policy
  • The attestor can only verify proofs — it cannot access funds or user data
  • Enclave measurements are publicly verifiable

Key management#

  • Your spend key is derived from an EIP-712 signature and never leaves your device
  • Your view key allows read access but cannot spend funds
  • No seed phrases — keys are deterministically derived from your wallet signature

What data does Senddy collect?#

DataStored?Details
Email addressOptionalOnly if you sign in with email
UsernameYesPublic, chosen by you
Transaction historyNoEncrypted on-chain, only you can decrypt
BalanceNoComputed client-side from encrypted notes
IP addressTemporarilyStandard server logs, not linked to activity
On-chain activityNoZK proofs ensure transaction details are hidden

What risks exist?#

Smart contract risk#

If a critical vulnerability is found in the pool contract, funds could potentially be at risk. This risk is mitigated by audits, bug bounties, and the upgrade mechanism.

Attestor compromise#

If the attestor signing key or enclave is compromised, invalid proofs could be attested and funds remain at risk. The pool still enforces nullifier uniqueness, share accounting, and isKnownRoot against tips advanced in prior leaf-producing transactions — which stops a gateway-only tree poison from creating a newly known fake root, but does not fully protect against a compromised attestor.

Regulatory risk#

Privacy-preserving financial technology operates in an evolving regulatory landscape. Senddy takes a proactive, layered approach to compliance:

  • Deposit screening — All deposits are checked against the Chainalysis sanctions oracle, blocking OFAC-sanctioned addresses at the contract level
  • Association proofs — Users can voluntarily prove their funds trace back to approved deposit sources using zero-knowledge proofs, without revealing transaction details
  • View key sharing — Users can grant read-only access to auditors without giving up control of funds

See Compliance for full details.

Bug bounty#

We maintain a bug bounty program for responsible disclosure of security vulnerabilities. If you discover a security issue, please contact:

security@senddy.com

We take all reports seriously and will work with you to resolve issues promptly.