Skip to main content

Integration Overview

KuraPrivacy is designed for enterprises that want to add on-chain transaction privacy to their applications. It exposes complex underlying operations (zero-knowledge proof generation, blockchain synchronization, and encrypted transaction state management) through a clean API.

This page explains what you need to integrate KuraPrivacy into your application or service, and what becomes possible once you do. Detailed SDK usage and sample code are provided separately at the time of onboarding — feel free to contact us.

What you can build with KuraPrivacy

By integrating KuraPrivacy via the Service API and SDK, your application can:

  • Issue per-user receive addresses (Kura addresses)
  • Display private balances
  • Deposit from a regular token balance into a private balance
  • Transfer from a private balance to another address
  • Withdraw from a private balance to a standard Ethereum address
  • Display transaction history for deposits, transfers, and withdrawals
  • Track transfer status (pending, confirmed, failed, etc.)
  • Support multiple signing methods: passkeys, EOA, multisig, and more

Integrating KuraPrivacy is best understood as adding a privacy layer on top of your existing wallet experience. Your application handles user experience, authentication, signing, and display. KuraPrivacy's service layer handles the underlying complexity: proof generation and blockchain synchronization.

User signing keys remain on the partner application or the user's device at all times and are never sent to KuraPrivacy. Users sign transfer payloads using their existing wallet (passkey, EOA, multisig, etc.), and only the resulting signature is submitted to KuraPrivacy. Adopting KuraPrivacy therefore requires no changes to your existing key management or trust model.

How a transfer works

A private transfer follows these steps:

  1. The user enters a recipient address and amount on the transfer screen.
  2. The partner application requests transfer preparation and receives the payload to be signed (POST /api/wallets/{wallet_handle}/transfer-preparations).
  3. The user reviews the transfer details and signs with their existing wallet key.
  4. The partner application submits the signed data to the API (POST /api/wallets/{wallet_handle}/transfers/execution-requests); KuraPrivacy's service layer handles proof generation and blockchain submission asynchronously.
  5. The partner application polls until the transfer is confirmed and displays the result to the user (GET /api/execution-requests/{execution_request_id}).

All of the underlying complexity (chain interaction and proof generation) is handled by KuraPrivacy's service layer. Your application only needs to implement one pattern: request, then poll for status.

System components

KuraPrivacy architecture

A KuraPrivacy-powered application is made up of several components working together. By integrating through the Service API and SDK, partner applications can get up and running quickly without needing to understand the internals of each component.

Partner application

The application responsible for user experience, authentication, signing, and displaying balances and history. It accesses private transfer functionality through the Kura Service API, and can integrate using existing wallet configurations — passkeys, EOA, multisig — without modification. Signing keys always remain on the partner application or the user's device and are never passed to KuraPrivacy.

Kura Contract

A smart contract deployed on-chain. It records and verifies deposits, transfers, and withdrawals, and ensures that the same balance cannot be spent twice. Partner applications do not interact with it directly.

Kura Service API

The primary API that partner applications connect to. It provides account registration, balance queries, transfer preparation and execution, and history retrieval over HTTP.

ZK Prover

The component that produces cryptographic proofs verifying that transfer operations comply with the protocol rules. This runs asynchronously and automatically within KuraPrivacy's service layer. Partners do not need to implement it.

Indexer / Sync Worker

Reads the on-chain transaction history and keeps each account's balance and transfer history up to date in the database. This is what makes it possible for partner applications to display accurate balances and history.

Broadcaster / Execution Worker

Submits completed proofs to the blockchain and tracks confirmation. After submission, partner applications simply poll the request ID for status.

  • Service API: A concise reference for the key endpoints of the HTTP API.

Contact us

If you are considering integrating KuraPrivacy, please reach out. We can provide detailed technical information, SDK and sample implementations, and deployment configuration on an individual basis.