engine

module
v0.0.0-...-d5d7211 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2025 License: MIT

README

citizen wallet logo
dApp Engine

dApp 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!

Directories

Path Synopsis
cmd
decrypt command
encrypt command
key command
migrate command
internal
api
db
rpc
ws
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL