In development on testnet


  • zAccounts function as private ledgers for users

  • zAccounts belong to a Zone managed by a Zone Manager

  • zAccounts don't hold PII (Personally Identifiable Information) such as name, dob, etc.


The zAccount is the end user's entrypoint to a Zone, and, thereby to a Shielded Pool. A zAccount associates a user's EOA (Externally Owned Account, i.e. a wallet) with their KYC attestation, as required by the Zone Manager.

The core functionality of the zAccount will be to delink the user's transactions from their publicly-observable EOA. Additionally, it will let users prove their trades and balance in a privacy-enabled manner, and withdraw their assets back to a publicly owned wallet.

zAccounts and privacy

When a user successfully passes KYC and activates their zAccount, the account Id will be made available from a public lookup table maintained by the Panther Smart Contract. This table will allow anyone to access the zAccount Id to find its two root public keys. These keys are required to spend and access zAssets. The critical outcome of the Protocolโ€™s design is that EOAs/wallet address wonโ€™t be linked to trades within, or outwith the Protocol when using a DeFi adaptor.

zAccounts and compliance

The Protocol is designed to allow the Zone Manager to define compliance: enforced as a compliance attestation that is required to validate a zAccount. This will enable Zone Managers to support decentralized identities, and assign third-party KYC providers. Users can establish a Zero-Knowledge, or zAccount following successful verification.

The Protocol can verify the completion and nature of the user's verification without processing any personal data โ€” while empowering the end user with tailored information sharing. It will employ advanced Zero-Knowledge methods to ensure the confidentiality and control of users' transactional data on the blockchain.

To simplify compliance, each end user's activities will be consolidated under a singular ledger, or zAccount.

zAccount architecture

zAccounts are crafted using a specific type of unspent transaction output (UTXO) within the Merkle Tree structure of UTXOs. Each zAccount UTXO will encapsulate critical user-specific details, including the zAccount's unique identifier, balances in ZKP and PRP, Zone-ID, and more.

The Shielded Pool will assign every zAsset, represented by a UTXO commitment, to an โ€œownerโ€ โ€” the only zAccount able to spend it. This is achieved by including a public (spending) key in generating the UTXO commitment, for which only the zAsset recipient knows the corresponding private (spending) key.

However, rather than using a single fully-public spending key for each recipient, known to the whole world, a new spending keypair is derived. This pair is guaranteed to be unique for each UTXO โ€” strengthening the systemโ€™s privacy while offering greater flexibility to disclosure schemes.

What next?

Last updated