LogoLogo
  • Learn About Signet
    • Simplifying the Rollup
    • No Proofs or State Roots
    • Simple sequencing
    • Cross-chain transfers on Signet
  • Build on Signet
    • Smart Contracts
      • Passage
      • Transactor
      • Orders
        • Order Processing
        • Working with Orders
        • Market Participants
        • Bundles and Orders
        • Application Use Cases
      • Zenith
      • Permit2
    • EVM Behavior
    • Signet SDK
      • signet-zenith
      • signet-types
      • signet-extract
      • signet-evm
      • signet-bundle
      • signet-rpc
  • More info
  • FAQ
  • Glossary
  • Twitter
  • Github
Powered by GitBook
On this page
  • Order Components
  • Order Execution Flow
  • Security Considerations for Fillers
  • Chain Execution Requirements
  1. Build on Signet
  2. Smart Contracts
  3. Orders

Order Processing

Technical walkthrough of order lifecycle from signing to execution. Details components, sequence, and implementation structures for developers building with the order system.

Orders in Signet enable cross-chain transfers and atomic swaps. They require precise sequencing and coordination between different transactions to ensure secure execution.

Order Components

Orders consist of two essential parts that must execute within the same block:

  • Initiate - Transfers inputs from the User to the Filler

  • Fill - Transfers outputs from the Filler to the User

Important Ordering Constraints

Initiate transactions can only mine if the Fill transactions have already mined. This critical sequencing requirement ensures atomic execution.

Component
Signing Order
Mining Order
Chain Location

Initiate

Signed First

Mines Second

Always on Rollup

Fill

Signed Second

Mines First

Host chain, Rollup, or both

Order Execution Flow

  1. User signs the Initiate permit (creating a SignedOrder)

  2. User sends the SignedOrder to a Filler

  3. Filler signs the Fill permit (creating a SignedFill)

  4. Filler creates a transaction Bundle with Fill transaction(s) first, followed by Initiate transaction(s)

  5. Filler sends the Bundle to a Block Builder

  6. Builder mines the Bundle atomically on both Host & Rollup

Note: Despite its name, "Initiate" transactions are always mined after the "Fill" transaction.

Security Considerations for Fillers

Fillers must take special precautions when handling SignedFills:

  • Keep SignedFills private until mined on-chain

    • Anyone with a SignedFill can withdraw tokens from the Filler's account

    • Only share SignedFills with trusted Builders who are contractually bound to maintain Bundle integrity

    • Leaked SignedFills risk financial loss

  • Ensure proper transaction ordering

    • Fill transactions MUST mine before Initiate transactions

    • Host chain transactions automatically mine before Rollup transactions

    • For Rollup-based Fills, explicit ordering is required to ensure they mine before Initiate transactions

Chain Execution Requirements

  • Conditional Transactions: Only the Rollup can enforce conditional transactions, which is why Initiate transactions always happen on the Rollup

  • Atomic Execution: Both parts of an Order must execute in the same block or neither will execute

  • Cross-Chain Coordination: Orders can involve transactions on both the Host chain and the Rollup, requiring careful synchronization

PreviousOrdersNextWorking with Orders

Last updated 19 days ago