Skip to content

Latest commit

 

History

History
59 lines (49 loc) · 2.6 KB

README.md

File metadata and controls

59 lines (49 loc) · 2.6 KB

dApp Engine

App Engine is a Go application designed to simplify and enhance blockchain interactions on EVM-compatible chains. It aims to create great user experiences on EVM-compatible blockchains by providing a unified solution for reading and writing data, as well as handling event-based interactions.

Purpose

Engine addresses several key challenges in blockchain development:

  1. Simplified Transactions: Submitting abstracted transactions (user operations) becomes easier.
  2. Chronological Data Reading: Efficiently read data in chronological order from the blockchain.
  3. Event Handling: React to on-chain events through WebSockets (for application displays) or webhooks (for system responses).
  4. Data Enrichment: Attach additional off-chain data to enhance use cases (e.g., transaction descriptions for ERC20 transfers).
  5. Real-time Interaction: Make transactions and their data available before they are confirmed on-chain, enabling immediate user feedback and interaction.

Features

  • Bundler
    • RPC calls through REST Endpoints
      • pm_sponsorUserOperation
      • pm_ooSponsorUserOperation
      • eth_sendUserOperation
      • eth_chainId
    • RPC calls through WebSocket
      • pm_sponsorUserOperation
      • pm_ooSponsorUserOperation
      • eth_sendUserOperation
      • eth_chainId
  • Smart Contract Logs
    • Endpoints
      • Fetch in a date range
    • WebSocket
      • Listen by Contract + Event Signature + Data (optional)
      • Listen by Contract + Event Signature + Data OR Data (optional)
    • Indexing
      • Listen by Contract + Event Signature
    • Mechanism to automate requests to start indexing
      • Manually for system admins
      • By listening to a Smart Contract (people could pay to start indexing)
    • Allow attaching extra data to a log
    • Store in DB
      • Hash
      • Created at
      • Sender (used to determine if modifying extra data is allowed)
      • Destination Contract Address
      • Amount
      • Status
      • Topics (as JSON)
      • Extra Data (as JSON)
    • Webhooks (make a network request based on an event being triggered)

About Citizen Wallet

Citizen Wallet is an open-source project focused on improving blockchain user experiences. Engine is a core component of this ecosystem.

Join our community to contribute, ask questions, or learn more about the project!