LogoLogo
  • General
    • 👋Welcome to Kinto
    • 📔Terminology
    • 📃Litepaper
    • 📄One Pager
    • 🔗Links
    • 🤝Partners and Collaborators
    • ❓FAQ
  • User Guides
    • 🌟Sign Up Walkthrough
    • 🗝️KYC Walkthrough
      • 🔑Synaps Walkthrough
      • 🔑Plaid Walkthrough
    • 📄KYB Walkthrough
    • 🪟Passkeys on Windows Walkthrough
    • Setting up a 1Password Passkey
    • ❔Troubleshooting/Help
    • 💰Kinto Deposits
      • Onramp on Kinto
    • 💸Kinto Withdrawals
      • 🗝️Recover funds from my Passkey address
      • 🎁Wrapping ETH in your Kinto Wallet
      • Offramp on Kinto
    • Swap on Kinto
    • Lending & Borrowing
    • Hyperliquid
      • Fees
      • Deposits
      • Creating Orders
      • Closing an Order
      • Withdrawals
    • Send to other Kinto Wallets
    • Token Sale Participation
    • Full Account Recovery
    • $K Transfer
      • Withdraw $K
      • Send $K on Kinto
      • Deposit $K
      • Swap $K on Kinto
    • Recover Funds from an X Signer
    • $K Lend and Borrow Market
      • Supply USDC to $K Lending Market
      • Withdraw USDC from $K Lending Market
      • Add $K and Borrow USDC
      • Repay USDC and Withdraw $K
  • Security/KYC/AML
    • 🔑Securing Kinto
    • 📃Security One Pager
    • 🔐Security and Risk Management
    • 🛡️Wallet Insurance
    • ⚙️User Owned KYC
    • 🏳️Enabled Countries
    • 🔒Beware of Scams
    • ✅Kinto Validators
    • 🤺Security Council
  • Building on Kinto
    • ℹ️Network Information
    • 🧱Kinto Rollup Architecture
    • ❕Differences with other rollups
    • 🤖Rollup Features
      • ⚙️Create2
      • 🔥Kinto Account Abstraction
      • 🛡️KintoWallet
      • 🪢Musubi - Chain Abstraction
    • 💻Development guide
      • 1️⃣1️⃣ Setup your Deployer EOA
      • 2️⃣2️⃣ Environment setup
      • 3️⃣3️⃣ Creating your Kinto App
    • ⛩️Interacting with your Kinto App
      • 🤖Interacting with contracts
      • 👩‍🏭Create a Web Dapp
    • 📗Smart Contract Reference
      • KintoAppRegistry
      • KintoID
      • KintoWalletFactory
      • Kinto Wallet
      • SponsorPaymaster
      • Kinto EntryPoint
      • KYCViewer
      • Faucet
      • EngenCredits
      • EngenGovernance
    • 🌍Kinto Wallet Web SDK
    • 🏪Running kinto nodes
    • ⚒️Tools
      • ⛈️Node RPC
      • 🏗️Build Tools
      • 🗺️Block Explorer
      • 🐞Debugging and monitoring
      • 🔮Oracle - Pyth
      • Firewall - Venn
    • 🚀ICO Platform
  • Governance
    • 🧠Introduction to the Kinto DAO
    • 📓Kinto Constitution
    • 📃KIP Proposal Template
    • 🌄Engen Proto-Governance
    • ⛩️Kinto Token
      • Information, addresses and links
  • 💧Liquidity Programs
    • 🛠️Mining Program
    • ⚫Engen - Launch Program
    • 🪙K Token Sale
  • Sakura Mining Season
Powered by GitBook
On this page
  • Basics
  • State Functions
  • View Function
  • Events
  1. Building on Kinto
  2. Smart Contract Reference

Kinto EntryPoint

PreviousSponsorPaymasterNextKYCViewer

Last updated 1 year ago

Deployment Address

**Mainnet: **

Code:


Basics

  • Serves as a single EntryPoint implementation for Account Abstraction (EIP-4337).

  • Manages user operations, including validation, execution, and compensation for operations.

  • Supports aggregated operations from multiple aggregators.

  • Implements functionalities related to stake management and nonce management.

  • Provides interface support checks and utilities for handling delegate calls and reverts


State Functions

setWalletFactory(address _walletFactory) external

handleOps(UserOperation[] calldata ops, address payable beneficiary) public nonReentrant

handleAggregatedOps(UserOpsPerAggregator[] calldata opsPerAggregator, address payable beneficiary) public nonReentrant

getSenderAddress(bytes calldata initCode) public

delegateAndRevert(address target, bytes calldata data) external

  1. setWalletFactory (Admin only)

Sets the wallet factory address.

function setWalletFactory(address _walletFactory) external;
Parameter
Type
Explanation

_walletFactory

address

The address of the wallet factory.

  1. handleOps

Handles an array of user operations.

function handleOps(UserOperation[] calldata ops, address payable beneficiary) public nonReentrant;
Parameter
Type
Explanation

ops

UserOperation[] calldata

Array of user operations.

beneficiary

address payable

Address to receive the fees.

  1. handleAggregatedOps

Handles aggregated operations from multiple aggregators.

function handleAggregatedOps(UserOpsPerAggregator[] calldata opsPerAggregator, address payable beneficiary) public nonReentrant;
Parameter
Type
Explanation

opsPerAggregator

UserOpsPerAggregator[] calldata

Array of operations per aggregator.

beneficiary

address payable

Address to receive the fees.

  1. getSenderAddress

Gets the address of a sender based on the provided initialization code.

function getSenderAddress(bytes calldata initCode) public;
Parameter
Type
Explanation

initCode

bytes calldata

The initialization code.

  1. delegateAndRevert

Delegates a call to another contract and reverts.

function delegateAndRevert(address target, bytes calldata data) external;
Parameter
Type
Explanation

target

address

The target address of the delegatecall.

data

bytes calldata

The data to be sent in the call.


View Function

supportsInterface(bytes4 interfaceId) public view virtual override returns (bool)

getUserOpHash(UserOperation calldata userOp) public view returns (bytes32)

  1. supportsInterface

Checks if the contract supports an interface.

function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool);
Parameter
Type
Explanation

interfaceId

bytes4

The interface identifier.

  1. getUserOpHash

Gets the hash of a user operation.

function getUserOpHash(UserOperation calldata userOp) public view returns (bytes32);
Parameter
Type
Explanation

userOp

UserOperation calldata

The user operation.


Events

  1. FailedOp Emitted when an operation fails.

    event FailedOp(uint256 opIndex, string reason);
  2. FailedOpWithRevert Emitted when an operation fails with a revert reason.

    event FailedOpWithRevert(uint256 opIndex, string reason, bytes returnData);
  3. PostOpRevertReason Emitted when a post-operation reverts.

    event PostOpRevertReason(bytes32 userOpHash, address sender, uint256 nonce, bytes revertReason);
  4. UserOperationRevertReason Emitted when a user operation reverts.

    event UserOperationRevertReason(bytes32 userOpHash, address sender, uint256 nonce, bytes revertReason);
  5. AccountDeployed Emitted when an account is deployed.

    event AccountDeployed(bytes32 userOpHash, address sender, address factory, address paymaster);
  6. BeforeExecution Emitted before execution of operations.

    event BeforeExecution();
  7. SignatureAggregatorChanged Emitted when the signature aggregator is changed.

    event SignatureAggregatorChanged(address aggregator);
  8. UserOperationEvent Emitted for each user operation event.

    event UserOperationEvent(bytes32 userOpHash, address sender, address paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGas);
  9. PostOpReverted Emitted when a post-operation is reverted.

    event PostOpReverted(bytes reason);
  10. SenderAddressResult Emitted for the result of getSenderAddress.

    event SenderAddressResult(address sender);
  11. DelegateAndRevert Emitted when delegateAndRevert is called.

    event DelegateAndRevert(bool success, bytes ret);
📗
0x2843C269D2a64eCfA63548E8B3Fc0FD23B7F70cb
EntryPoint.sol