Search

Search for projects by name or address

Privacy

Payy logo
Payy

Badges

About

Payy is a payments-focused ZK network for private stablecoin transfers, settled on Ethereum with aggregated validity proofs and validator signatures, while transaction data is kept offchain.


  • Live metrics
    Not trackedOnchain monitoring is not available for this project.
  • Trusted setup
  • Exit window
  • Privacy
  • Reproducibility
  • Attributes
    ZKPrivate amountsAny amount

  • Badges

    About

    Payy is a payments-focused ZK network for private stablecoin transfers, settled on Ethereum with aggregated validity proofs and validator signatures, while transaction data is kept offchain.

    Payy is a payments-focused ZK network, designed around private stablecoin transfers. Ethereum receives only state roots and the public deposit and withdrawal messages of each state update. Balances live offchain as UTXO-style notes whose commitments form a sparse Merkle tree maintained by the Payy validators.

    Privacy considerations

    To spend notes, the user’s client generates a Noir utxo proof that demonstrates ownership of the input notes and conservation of value; the public inputs of that proof are the commitments of the two notes consumed and the two notes created. Transfers therefore hide who paid whom and how much, but they do not hide which commitments were consumed: the deployed circuits do not use nullifiers, and a spend names its input commitments directly, which the node then marks as spent. Anyone with Payy block data can follow the resulting spend graph.

    Because only commitments are stored in the tree, a recipient cannot reconstruct a received note from chain data alone: the sender must transmit the note contents out of band. In practice it is done by an encrypted registry operated by Payy, which stores the recipient’s public key in the clear and serves each client the entries addressed to it. Thus it learns the delivery metadata even though it cannot read note contents.

    Fees

    The protocol charges no transfer or withdrawal fee.

    Compliance

    The deployed protocol enforces no compliance measures and contains no auditor key, view key or other mechanism that could retroactively decrypt past activity. Identity data is collected at the application layer: KYC is required for the Payy card and fiat ramps, but it is not necessary for using Payy L2.

    Anonymity set

    Payy hides the contents of each note but not the links between notes, so its anonymity set should not be read as the set of all users. An observer of Payy block data sees a graph of opaque commitments; privacy rests on not knowing which address, asset or amount each node in that graph carries.

    Payy operator runs a centralized note discovery service, where the sender submits full transfer data encrypted to the receiver. The centralized operator learns which addresses receive notes and when, and who transacted with whom.

    The protocol itself allows direct peer-to-peer note communication that bypasses the registry.

    • The Payy-operated note registry, note lookup and wallet backup services learn which addresses receive and hold which notes and can link senders to recipients. The same operator holds KYC data for users of the Payy card and fiat ramps, which can tie those addresses to real identities.

    • A compromise of a recipient key or of the encryption scheme exposes all note data ever stored in the encrypted registry.

    Funds can be stolen if

    1. the proof system is broken and a malicious validator is registered, allowing forged spends or withdrawals.
    2. the PayyMultisig upgrades the Rollup contract or directly overwrites the state root to a malicious version.

    Funds can be lost if

    1. a user loses the note data or the keys required to spend their notes.
    2. the offchain transaction data becomes unavailable, as data availability is not verified on Ethereum.
    3. the operators stop including withdrawals in proven state updates, as there is no forced exit mechanism.

    Privacy can be lost if

    1. the Payy-operated note registry, note lookup or wallet backup services are compromised or their records are disclosed, revealing which addresses receive and hold which notes and who transacted with whom.

    All privileged functions are ultimately controlled by the PayyMultisig (2/4). It owns the ProxyAdmin, which can instantly upgrade the Rollup proxy, and it is the owner of the Rollup contract, allowing it to manage provers, validators, ZK verifiers, supported tokens and burn substitutors, and to directly overwrite the state root via setRoot(). There is no timelock or exit window on any of these actions.

    Aztec Ignition

    UltraHonk

    Detailed description

    Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.

    2026 August 25, 10:47 UTC
    4changes

    Discovery rerun on the same block number with only config-related changes.

    Initial discovery

    + Status: CREATED
    contract HonkVerifier (eth:0x14DACD534ddc676601B27f41Eb541a7951524a2F) [payy/HonkVerifier]
    +++ description: UltraHonk proof verifier generated with Aztec's Barretenberg from Payy's final aggregation Noir circuit. It verifies the aggregated validity proof of each state update submitted to the Rollup contract.
    + Status: CREATED
    contract PayyMultisig (eth:0x230Dfb03F078B0d5E705F4624fCC915f3126B40f) [GnosisSafe]
    +++ description: None
    + Status: CREATED
    contract RollupV1 (eth:0x367C1eAF14AA06b78ce76bd0243297de79d85270) [payy/Rollup]
    +++ description: Main contract of the Payy ZK rollup. It stores the state root, escrows USDC backing the notes on the rollup, processes deposits (mints) and withdrawals (burns), and accepts state updates that must include an aggregated ZK proof and signatures from more than 2/3 of the current validator set.
    + Status: CREATED
    contract ProxyAdmin (eth:0xfE455baCAF1968F1Ae6a322b8Ffbe56840e2f590) [global/ProxyAdmin]
    +++ description: None
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    PayyMultisig0x230D…B40f

    A Multisig with 2/4 threshold.

    • Can upgrade with no delay
      • RollupV1
    • Can interact with RollupV1
      • can manage provers, validators, ZK verifiers, supported tokens and burn substitutors, and can overwrite the current state root via setRoot()
    • Can interact with RollupV1
      • can sign state updates as a validator. Signatures from more than 2/3 of the current validator set are required for each update
    • Can interact with RollupV1
      • can submit state updates (new state roots) via verifyRollup(), providing an aggregated ZK proof and validator signatures
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    HonkVerifier0x14DA…4a2F

    UltraHonk proof verifier generated with Aztec’s Barretenberg from Payy’s final aggregation Noir circuit. It verifies the aggregated validity proof of each state update submitted to the Rollup contract.

    Main contract of the Payy ZK rollup. It stores the state root, escrows USDC backing the notes on the rollup, processes deposits (mints) and withdrawals (burns), and accepts state updates that must include an aggregated ZK proof and signatures from more than 2/3 of the current validator set.

    • Roles:
      • admin: ProxyAdmin; ultimately PayyMultisig
      • getValidatorSets: EOA 1
      • initialProver: EOA 2
      • owner: PayyMultisig

    All supported tokens in this escrow are included in the value secured calculation.

    Can be upgraded by:
    ProxyAdmin0xfE45…f590
    • Roles:
      • owner: PayyMultisig

    The current deployment carries some associated risks:

    • Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).