Skip to content

Latest commit

 

History

History
87 lines (59 loc) · 3.15 KB

File metadata and controls

87 lines (59 loc) · 3.15 KB

Smart Vaults

Splits 4337 smart accounts are engineered to provide users with a seamless and secure way to manage a tiered system of multi-chain multi-sigs. This means minimizing user friction to synchronize state (e.g. implementation, signer set) across networks without degrading the underlying security model.

architecture

Currently, these smart accounts are compatible with entry point v0.7.

Feature set

  • m-of-n signers: Supports both Passkeys and EOAs.
  • ERC1271 Support: Can verify ERC1271 signatures.
  • Token Support: Accepts ERC721 and ERC1155(single and batch) tokens.
  • Fallback Manager: Allows users to extend their smart accounts to handle future callback-based interactions, such as those involving ERC721 tokens, ensuring future-proofing.
  • Module Manager: Provides users the ability to add trusted modules that can interact on behalf of the smart account.
  • Contract Deployment: Enables the deployment of new contracts using create from within the smart account during a UserOp.
  • Merkelized User Operations: Supports signing once for multiple user operations across different networks and accounts using Merkle trees.
  • Light User Operation: When multiple signatures are required, allows the last signer to set gas according to current market conditions.

Merkelized User Operations

Merkelized User Operations utilize Merkle trees to generate a root of all intended user operations. The user signs the Merkle root once, and when submitting a user operation, the signature includes the Merkle proof for verification. There is no strict limit on the number of operations or which parameters should remain constant, allowing operations across multiple networks and smart accounts with a single signature.

Light User Operation

When the threshold (the number of unique and valid signatures required for a valid user operation) is greater than 1, the first threshold - 1 signers sign over a reduced set of properties from the user operation. This gives the final signer flexibility to price gas for the user operation inline with current market conditions. In the case of Merkelized User Operations, the initial signatures are verified against a light Merkle root, constructed using these reduced light user operations.

Properties included in light UserOp:

  • sender
  • nonce
  • calldata

Properties excluded:

  • initCode - This has been excluded because of sender since sender is calculated deterministically from initCode making it redundant.
  • accountGasLimits
  • preVerificationGas
  • gasFees
  • paymasterAndData
  • signature

Build

pnpm build

Test

pnpm test

Coverage

pnpm test:coverage

Coverage Report

pnpm test:coverage:report

Lint

pnpm lint

Format

pnpm format

Developers/Integrators

Foundry

forge install 0xSplits/splits-contracts-monorepo