Repository navigation
[sdk, simplex, docs]: Hyperbridge's bundlers by default, priced for rundler - #1386
Merged
Merged
Conversation
…Url from the config Simplex submits every fill through the ERC-4337 bundler Hyperbridge runs for the chain (Ethereum, BSC, Polygon, Base, Arbitrum, BSC Chapel and Polygon Amoy), resolved from the chain id. A chain without one can only be watched: the bundler preflight and PUT /api/chains refuse it unless it is watch-only. A bundlerUrl in an older config is ignored and no longer written back. ChainInput.bundlerUrl, chains.setBundlerUrl, the init bundler step and /api/setup/validate-bundler are removed, and the wizards offer only chains with a Hyperbridge bundler. Simplex and simplex-desktop 0.18.0.
…ts chain The SDK's chain registry now carries the bundler Hyperbridge runs for each chain (ChainConfigData.bundlerUrl). EvmChain.bundlerUrl returns the bundler it was given, or else that one, so an IntentGateway on Ethereum, BSC, Polygon, Base, Arbitrum, BSC Chapel or Polygon Amoy needs no bundler URL. A URL passed to EvmChain.create or fromParams still wins. Simplex keeps its own copy of the list because the dashboard bundles it without the SDK; a test checks the two match. The testnet swap E2E drops its bundler env vars. The SDK goes to 3.0.1.
Rundler only bundles an op whose max fee covers the pending base fee raised by its overhead (27% by default) plus its priority fee. The SDK and simplex raised the max fee by 10% of the base fee, so on Ethereum, Base, Arbitrum and Polygon fills were accepted by Hyperbridge's bundlers and then skipped until they expired. rundlerUserOperationFees now uses the fees the bundler suggests through rundler_getUserOperationGasPrice, raised by the configured bumps, and falls back to rundler_maxPriorityFeePerGas where it is not served. Fill estimates and simplex's sponsored sends both use it. The Pimlico and Alchemy pricing paths are removed.
Wizdave97
approved these changes
Oct 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Simplex and the SDK now use the ERC-4337 bundlers Hyperbridge runs, and price UserOperations at fees those bundlers will actually bundle. Hyperbridge runs bundlers on Ethereum, BSC, Polygon, Base and Arbitrum, and on BSC Chapel and Polygon Amoy for testnet. Since today's governance batch, the SimplexPaymaster only sponsors bundles sent by them.
SDK. Each chain in the chain registry carries its Hyperbridge bundler as
bundlerUrl.EvmChain.bundlerUrlreturns the bundler the chain was given, or else that one, so anIntentGatewayon a supported chain needs no bundler URL. A URL passed toEvmChain.createorfromParamsstill wins.Fees. The bundlers run rundler. Rundler accepts an op paying half the base fee, but only bundles one whose max fee covers the pending base fee plus 27%, plus its priority fee. The SDK and simplex added only 10%, so on Ethereum, Base, Arbitrum and Polygon a fill was accepted and then skipped until it expired. Fees now come from the bundler's
rundler_getUserOperationGasPricesuggestion, raised by the configured bumps, withrundler_maxPriorityFeePerGasas the fallback. Fill estimates and simplex's sponsored sends both price this way. The Pimlico and Alchemy pricing paths are removed, along withBundlerMethod.PIMLICO_GET_USER_OPERATION_GAS_PRICEandPimlicoGasPriceEstimate.Simplex.
bundlerUrlis gone from the config. Fills always go through the Hyperbridge bundler for the chain. A chain without one can only be watched: simplex refuses to start, add it, or switch it to filling unless it is watch-only, and the dashboard's chain editor refuses it too. The wizards and the Chains panel only offer chains with a bundler, so the testnet list is BSC Chapel and Polygon Amoy.Existing configs keep working. A
bundlerUrlleft in[[chains]]is ignored and dropped on the next save. A config filling on a chain without a Hyperbridge bundler, such as Sepolia, fails to start until that chain is marked watch-only.For library users,
chains.addno longer takesbundlerUrlandchains.setBundlerUrlis gone. Thesimplex initbundler question and/api/setup/validate-bundlerare removed. The testnet swap E2E drops its bundler env vars.Versions: SDK 3.0.1, simplex and simplex-desktop 0.17.1.
The SDK fee, bundler and fill-estimate tests pass, and the SDK type-check is clean. The full simplex suite passes apart from the six suites that need live RPC or Binance credentials, and its type-check shows no new errors.