LogoLogo
  • 📖What is Spire?
  • 🗼Pylon
    • Become a Pylon Partner
    • How to Run a Based Appchain
    • Appchain Components
    • Seamless DevEx
    • FAQs
  • 🌊DA Builder
    • Blob Aggregation Conceptually
  • 📡Preconf Router
    • Developer API
    • Tutorial
  • 🧱Based Stack
    • Spire's flavor of L2 based sequencing
    • Customizable composability
    • Preconfirmations in the Based Stack
    • Execution environment / virtual machine
    • Sequencing revenue (MEV) retention
    • Traditional shared sequencing
    • Open source and credibly neutral
    • Future upgrades
    • What's holding L2 based rollups back today?
    • GitHub [spire-labs/based-stack]
  • 🏫Education Hub
    • Ethereum L2 Based Rollups
    • Based resources
    • Sequencing on Ethereum L1
    • Preconfirmations on Ethereum L1
    • Synchronous Composability
    • What is a based rollup?
Powered by GitBook
LogoLogo

About Spire

  • Website
  • Writings
  • Career
  • Media Kit

Follow Us

  • X
  • Farcaster
On this page
Edit on GitHub
  1. Pylon

Seamless DevEx

PreviousAppchain ComponentsNextFAQs

Last updated 1 day ago

Pylon enables us to have seamlessly composable transactions across chains within a Sync Zone. These seamlessly composable transactions enable us to provide a developer experience unlike any other. Your application contracts can literally be written as if they were on the same chain you are deployed under.

Synchronously Composable Transactions

In order to provide this experience Pylon runs a node for the settlement chain you are deployed to as well as the sequencing node for your appchain and any other appchains in your Sync Zone. Pylon then detects whenever there is a transaction calling into another chain through a Port Contract. It forwards the call to the other chain and then injects the results back into the originating Port contract with a Priming Transaction that frontruns the original application call to ensure the data is available to complete the call.

Forwarding Proxy Contracts are used to take app calls and re-direct them to the Port Contract that will have the call results available for retrieval (since the Port contract is pre-populated with the necessary data as indicated above).

As a result, your app logic can be written as if it were on the same chain as the contracts you are attempting to call into:

🗼