Skip to content

Conversation

@coffeexcoin
Copy link
Contributor

@coffeexcoin coffeexcoin commented Oct 31, 2025

What ❔

Implement eth_sendRawTransactionSync API method to add EIP-7966 support to zksync era API.

sendRawTransactionSync uses the existing new block pubsub broadcast under the hood to check for transaction inclusion, on new blocks, while racing a user specified timeout (with default and node-configurable max) for inclusion.

Why ❔

With the v29 release and fast (200ms) blocks, dapps can benefit greatly by using synchronous calls for transaction submission to receipt, instead of having to poll for the receipt.

EIP-7966 has clear benefits for a number of onchain use cases:

  • Trading. DEXs, CLOBs, and other trading apps can double their fee revenue by processing twice as many transactions per second, with no modification to block times or gas limits. The increased speed also allows these apps to offer tighter spreads, reduce stale quotes, and increase order execution probability – all of these improve UX.
  • Gaming. Many onchain games translate rapid, repeated in-game actions (e.g. moves, item trades, crafting, etc.) into individual transactions, each of which generates a polling loop under today’s eth_sendRawTransaction paradigm. EIP-7966’s introduction of synchronous receipts reduces the load on RPCs by eliminating those loops and provides smoother gameplay for users.
  • Payments. Onchain payments apps with high volumes can process more payments – and therefore generate more fees – with EIP-7966’s eth_sendRawTransactionSync method. This method also allows them to confirm payments faster and eliminate the anxiety users get waiting for a big transfer to be confirmed – a huge UX win.

Is this a breaking change?

  • Yes
  • No

Operational changes

Two new configuration values:

  • send_raw_tx_sync_default_timeout_ms: default 2000 (2 seconds) per recommendation in EIP
  • send_raw_tx_sync_max_timeout_ms: default 10000 (10 seconds) - prevents callers from very-long/infinite duration calls by specifying an unreasonable transaction inclusion timeout

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • Code has been formatted via zkstack dev fmt and zkstack dev lint.

@coffeexcoin coffeexcoin marked this pull request as ready for review November 3, 2025 17:23
@Deniallugo
Copy link
Contributor

@coffeexcoin LGTM, but please make sure that lints are passing

@Deniallugo Deniallugo added this pull request to the merge queue Nov 12, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 12, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Nov 13, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 13, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Nov 13, 2025
@Deniallugo Deniallugo removed this pull request from the merge queue due to a manual request Nov 13, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Nov 13, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 13, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Nov 13, 2025
@Deniallugo Deniallugo removed this pull request from the merge queue due to a manual request Nov 13, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Nov 13, 2025
Merged via the queue into matter-labs:main with commit 7c4c428 Nov 13, 2025
62 of 67 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Nov 17, 2025
🤖 I have created a release *beep* *boop*
---


##
[29.6.0](core-v29.5.0...core-v29.6.0)
(2025-11-17)


### Features

* **api:** add EIP-7966 eth_sendRawTransactionSync method
([#4565](#4565))
([7c4c428](7c4c428))
* bumping versions
([#4555](#4555))
([1cd803d](1cd803d))
* **eth_sender:** Set fusaka upgrade timestamp
([#4571](#4571))
([3b5a9df](3b5a9df))
* Improve proving networks setup
([#4563](#4563))
([42c3f0f](42c3f0f))
* **zkstack:** ensure priority queue is empty before migrating to
gateway ([#4539](#4539))
([a5e1133](a5e1133))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Deniallugo pushed a commit that referenced this pull request Dec 17, 2025
🤖 I have created a release *beep* *boop*
---


##
[29.6.0](core-v29.5.0...core-v29.6.0)
(2025-11-17)


### Features

* **api:** add EIP-7966 eth_sendRawTransactionSync method
([#4565](#4565))
([7c4c428](7c4c428))
* bumping versions
([#4555](#4555))
([1cd803d](1cd803d))
* **eth_sender:** Set fusaka upgrade timestamp
([#4571](#4571))
([3b5a9df](3b5a9df))
* Improve proving networks setup
([#4563](#4563))
([42c3f0f](42c3f0f))
* **zkstack:** ensure priority queue is empty before migrating to
gateway ([#4539](#4539))
([a5e1133](a5e1133))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants