💻
Developer Guide
  • Wallet SDK
    • Wallet Overview
    • Getting Started
      • 1. Start the RAILGUN Privacy Engine
      • 2. Build a persistent store for artifact downloads
      • 3. Load a Groth16 prover for each platform
      • 4. Add networks and RPC providers
      • 5. Set up a debug logger
    • Private Wallets
      • RAILGUN Wallets
      • View-Only Wallets
      • Encryption Keys
    • Private Balances
      • Balance and Sync Callbacks
      • Updating Balances
      • QuickSync
    • Transactions
      • Shielding
        • Shield ERC-20 tokens
        • Shield base token
        • Shield NFTs
      • Private Transfers
        • Private ERC-20 Transfers
        • Private NFT Transfers
      • Cross-Contract Calls
      • Unshielding
        • Unshield ERC-20 tokens
        • Unshield base token
        • Unshield NFTs
      • UX: Private Transactions
    • Broadcasters
  • Cookbook SDK
    • Cookbook Overview
    • Recipe Guide: Write a zkApp
      • "Step" — A smart contract call
      • "Recipe" — Steps in series
      • "Combo Meal" — 2+ Recipes
    • Use your zkApp privately
  • Engine SDK
    • Engine Overview
  • ZK Account Abstraction
    • Account Abstraction Overview
    • Getting started with the contracts
    • Wallets
    • State Structure
    • Example Primitives
Powered by GitBook
On this page
  1. ZK Account Abstraction

Account Abstraction Overview

This document assumes a base level knowledge of Solidity/EVM and zkSNARKs.

PreviousEngine OverviewNextGetting started with the contracts

Last updated 2 years ago

The purpose of this document is to accelerate the on-boarding process for developers looking to build advanced applications that require directly interacting with lower level functions within RAILGUN, there are less guardrails in place when building these applications. If your application can be implemented as a multicall you should instead go to the .

RAILGUN private balances are a form of ZK based Account Abstraction that pre-dates ERC-4337.

Rather than requiring users to sign transactions with their own wallet and revealing addresses, transaction verification happens through a SNARK Proof verifying against a shielded Merkle Tree of balances. This enables interesting utility like RAILGUN , where private transactions can be sent using stablecoins or any other token accepted by Relayers as opposed to the chain’s native gas token like ETH.

This utility from ZK Account Abstraction can be extended in even more interesting directions than just gasless transactions such as:

  • Private DAO voting using RAILGUN balances, enabling anonymous voting based on ERC-20s or NFTs

  • ZK Payments infrastructure to support use cases like private bounty or salary payments

  • Sealed transfer of tokens between 2 users at a pre-agreed upon price or condition

cookbook overview
gasless transactions