Skip to content

Commit 70c6c4d

Browse files
authored
Remove deprecated bundle stats API methods from documentation (#638)
Remove deprecated bundle stats API methods Removes five bundle stats API methods that were fully deprecated on June 9th and now return 403 errors: - flashbots_getUserStats - flashbots_getBundleStats - flashbots_getUserStatsV2 - flashbots_getBundleStatsV2 - flashbots_getSbundleStats These APIs are no longer functional. Keeping them in the documentation was causing confusion for developers. Additional changes: - Removed references to deprecated APIs in quick-start.mdx, reputation.md, and gas-fee-refunds.md - Updated Go example to demonstrate eth_sendBundle instead of deprecated flashbots_getUserStats Fixes issue reported by Egor on Slack regarding 403 errors on Sepolia. Reference: https://collective.flashbots.net/t/deprecation-of-bundle-stats-api-methods-in-flashbots-protect/4973
1 parent ce71364 commit 70c6c4d

File tree

4 files changed

+16
-318
lines changed

4 files changed

+16
-318
lines changed

docs/flashbots-auction/advanced/gas-fee-refunds.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@ Searchers can also use `mev_sendBundle` to multiplex bundles if they prefer. Thi
5959

6060
_Note: Smart multiplexing has a 1% rate of false positives, meaning that in 1% of MEV-Boost blocks there is a risk that searcher bundles will not be landed._
6161

62-
### Bundle stats for multiplexed bundles
63-
64-
To view bundle stats on multiplexed `eth_sendBundle` requests, use the `flashbots_getSbundleStats` API. You will see a new "smart" field in the response to multiplexed `eth_sendBundle` which indicates that the sbundle stats endpoint should be used.
65-
6662
## How are refunds calculated
6763

6864
BuilderNet uses a refund rule to retroactively calculate refunds for all bundles landed in its blocks. For more information, see the [BuilderNet docs](https://buildernet.org/docs/refunds).

docs/flashbots-auction/advanced/reputation.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ $\Delta_{coinbase_T}$: coinbase difference from direct payment in transaction $T
2727

2828
Flashbots uses a dynamic threshold to classify users between the high reputation and low reputation queue. The dynamic variables are: 1) the historical time period considered to calculate reputation, 2) the cutoff reputation score which classifies a searcher as "high reputation". Using a dynamic threshold allows the builder to adapt in periods of high demand and maintain high reliability for top searchers.
2929

30-
A searcher can query their current reputation status using the [`flashbots_getUserStatsV2` RPC method](/flashbots-auction/advanced/rpc-endpoint#flashbots_getuserstatsv2).
31-
3230
## Building reputation
3331

3432
Searcher reputation is associated with the signing key used to authenticate with Flashbots. That is, the ethereum address associated with the `X-Flashbots-Signature` field of your bundle submission.

docs/flashbots-auction/advanced/rpc-endpoint.mdx

Lines changed: 1 addition & 300 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ example response:
8080
}
8181
```
8282

83-
If `builders` are specified, the response will include an additional `smart` field. Use the `flashbots_getSbundleStats` API to look up stats for smart bundles.
83+
If `builders` are specified, the response will include an additional `smart` field.
8484

8585
example with `builders`:
8686

@@ -536,305 +536,6 @@ example response:
536536
}
537537
```
538538

539-
### flashbots_getUserStats
540-
541-
:::caution
542-
543-
flashbots_getUserStats will be deprecated soon, use [flashbots_getUserStatsV2](/flashbots-auction/advanced/rpc-endpoint#flashbots_getuserstatsv2)
544-
545-
:::
546-
547-
The `flashbots_getUserStats` JSON-RPC method returns a quick summary of how a searcher is performing in the Flashbots ecosystem, including their [reputation-based priority](/flashbots-auction/advanced/reputation). It is currently updated once every hour and has the following payload format:
548-
549-
```json
550-
{
551-
"jsonrpc": "2.0",
552-
"id": 1,
553-
"method": "flashbots_getUserStats",
554-
"params": [
555-
blockNumber, // String, a hex encoded recent block number, in order to prevent replay attacks. Must be within 20 blocks of the current chain tip.
556-
]
557-
}
558-
```
559-
560-
example response:
561-
562-
```json
563-
{
564-
"is_high_priority": true,
565-
"all_time_miner_payments": "1280749594841588639",
566-
"all_time_gas_simulated": "30049470846",
567-
"last_7d_miner_payments": "1280749594841588639",
568-
"last_7d_gas_simulated": "30049470846",
569-
"last_1d_miner_payments": "142305510537954293",
570-
"last_1d_gas_simulated": "2731770076"
571-
}
572-
```
573-
574-
where
575-
576-
- `is_high_priority`: boolean representing if this searcher has a high enough reputation to be in the high priority queue
577-
- `all_time_miner_payments`: the total amount paid to validators over all time
578-
- `all_time_gas_simulated`: the total amount of gas simulated across all bundles submitted to Flashbots. This is the actual gas used in simulations, not gas limit
579-
580-
:::note
581-
582-
Parameters with `miner` in the name are retrofitted with Flashbots block builder data to maintain backwards compatibility. This nomenclature will be changed in a future release to accurately reflect PoS Ethereum architecture.
583-
584-
:::
585-
586-
### flashbots_getBundleStats
587-
588-
:::caution
589-
590-
flashbots_getBundleStats will be deprecated soon, use [flashbots_getBundleStatsV2](/flashbots-auction/advanced/rpc-endpoint#flashbots_getbundlestatsv2)
591-
592-
:::
593-
594-
The `flashbots_getBundleStats` JSON-RPC method returns stats for a single bundle. You must provide a blockNumber and the bundleHash, and the signing address must be the same as the one who submitted the bundle.
595-
596-
```json
597-
{
598-
"jsonrpc": "2.0",
599-
"id": 1,
600-
"method": "flashbots_getBundleStats",
601-
"params": [
602-
{
603-
bundleHash, // String, returned by the flashbots api when calling eth_sendBundle
604-
blockNumber, // String, the block number the bundle was targeting (hex encoded)
605-
}
606-
]
607-
}
608-
```
609-
610-
example response:
611-
612-
```json
613-
{
614-
"isSimulated": true,
615-
"isSentToMiners": true,
616-
"isHighPriority": true,
617-
"simulatedAt": "2021-08-06T21:36:06.317Z",
618-
"submittedAt": "2021-08-06T21:36:06.250Z",
619-
"sentToMinersAt": "2021-08-06T21:36:06.343Z",
620-
"receivedAt": "2022-10-06T21:36:06.250Z", // Added for POS, will be included as part of V2
621-
"consideredByBuildersAt": [
622-
{
623-
"pubkey": "0x81babeec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9",
624-
"timestamp": "2022-10-06T21:36:06.343Z"
625-
},
626-
{
627-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
628-
"timestamp": "2022-10-06T21:36:06.394Z"
629-
},
630-
{
631-
"pubkey": "0xa1dead1e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc",
632-
"timestamp": "2022-10-06T21:36:06.322Z"
633-
}
634-
], // Added for POS, will be included as part of V2
635-
"sealedByBuildersAt": [
636-
{
637-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
638-
"timestamp": "2022-10-06T21:36:07.742Z"
639-
}
640-
] // Added for POS, will be included as part of V2
641-
}
642-
```
643-
644-
### flashbots_getUserStatsV2
645-
646-
The `flashbots_getUserStatsV2` JSON-RPC method returns a quick summary of how a searcher is performing in the Flashbots ecosystem, including their [reputation-based priority](/flashbots-auction/advanced/reputation). It is currently updated once every hour and has the following payload format:
647-
648-
```json
649-
{
650-
"jsonrpc": "2.0",
651-
"id": 1,
652-
"method": "flashbots_getUserStatsV2",
653-
"params": [
654-
{
655-
blockNumber // String, a hex encoded recent block number, in order to prevent replay attacks. Must be within 20 blocks of the current chain tip.
656-
}
657-
]
658-
}
659-
```
660-
661-
example response:
662-
663-
```json
664-
{
665-
"isHighPriority": true,
666-
"allTimeValidatorPayments": "1280749594841588639",
667-
"allTimeGasSimulated": "30049470846",
668-
"last7dValidatorPayments": "1280749594841588639",
669-
"last7dGasSimulated": "30049470846",
670-
"last1dValidatorPayments": "142305510537954293",
671-
"last1dGasSimulated": "2731770076"
672-
}
673-
```
674-
675-
where
676-
677-
- `isHighPriority`: boolean representing if this searcher has a high enough reputation to be in the high priority queue
678-
- `allTimeValidatorPayments`: the total amount paid to validators over all time
679-
- `allTimeGasSimulated`: the total amount of gas simulated across all bundles submitted to Flashbots. This is the actual gas used in simulations, not gas limit
680-
681-
### flashbots_getBundleStatsV2
682-
683-
The `flashbots_getBundleStatsV2` JSON-RPC method returns stats for a single bundle. You must provide a blockNumber and the bundleHash, and the signing address must be the same as the one who submitted the bundle.
684-
685-
```json
686-
{
687-
"jsonrpc": "2.0",
688-
"id": 1,
689-
"method": "flashbots_getBundleStatsV2",
690-
"params": [
691-
{
692-
bundleHash, // String, returned by the flashbots api when calling eth_sendBundle
693-
blockNumber, // String, the block number the bundle was targeting (hex encoded)
694-
}
695-
]
696-
}
697-
```
698-
699-
example response when bundle relay has simulated the bundle and the target block has been reached:
700-
701-
```json
702-
{
703-
"isHighPriority": true,
704-
"isSimulated": true,
705-
"simulatedAt": "2022-10-06T21:36:06.317Z",
706-
"receivedAt": "2022-10-06T21:36:06.250Z",
707-
"consideredByBuildersAt": [
708-
{
709-
"pubkey": "0x81babeec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9",
710-
"timestamp": "2022-10-06T21:36:06.343Z"
711-
},
712-
{
713-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
714-
"timestamp": "2022-10-06T21:36:06.394Z"
715-
},
716-
{
717-
"pubkey": "0xa1dead1e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc",
718-
"timestamp": "2022-10-06T21:36:06.322Z"
719-
}
720-
],
721-
"sealedByBuildersAt": [
722-
{
723-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
724-
"timestamp": "2022-10-06T21:36:07.742Z"
725-
}
726-
]
727-
}
728-
```
729-
730-
when relay has not seen the bundle yet:
731-
732-
```json
733-
{
734-
"isSimulated": false,
735-
}
736-
```
737-
738-
when relay has seen the bundle but has yet to simulate it:
739-
740-
```json
741-
{
742-
"isSimulated": false,
743-
"isHighPriority": true,
744-
"receivedAt": "2022-10-06T21:36:06.250Z",
745-
}
746-
```
747-
748-
when relay has simulated the bundle but the target block has not been reached:
749-
750-
```json
751-
{
752-
"isSimulated": true,
753-
"isHighPriority": true,
754-
"simulatedAt": "2022-10-06T21:36:06.317Z",
755-
"receivedAt": "2022-10-06T21:36:06.250Z"
756-
}
757-
```
758-
759-
where
760-
761-
- `isHighPriority`: boolean representing if this searcher has a high enough reputation to be in the high priority queue
762-
- `isSimulated`: boolean representing whether the bundle gets simulated. All other fields will be omitted except simulated field if API didn't receive bundle
763-
- `simulatedAt`: time at which the bundle gets simulated
764-
- `receivedAt`: time at which the bundle API received the bundle
765-
- `consideredByBuildersAt`: indicates time at which each builder selected the bundle to be included in the target block
766-
- `sealedByBuildersAt`: indicates time at which each builder sealed a block containing the bundle
767-
768-
### flashbots_getSbundleStats
769-
770-
The `flashbots_getSbundleStats` JSON-RPC method returns stats for a single [sbundle](/flashbots-mev-share/searchers/understanding-bundles). You must provide `bundleHash`, and the signing address must be the same as the one who submitted the bundle.
771-
Only bundles that do not contain user's private transactions are supported (so no backrun bundles)
772-
773-
```json
774-
{
775-
"jsonrpc": "2.0",
776-
"id": 1,
777-
"method": "flashbots_getSbundleStats",
778-
"params": [
779-
{
780-
bundleHash, // String, returned by the flashbots api when calling eth_sendBundle with builders field or mev_sendBundle
781-
}
782-
]
783-
}
784-
```
785-
786-
example response when bundle relay has simulated the bundle and the target block has been reached:
787-
788-
```json
789-
{
790-
"isHighPriority": true,
791-
"isSimulated": true,
792-
"simulatedAt": "2022-10-06T21:36:06.317Z",
793-
"receivedAt": "2022-10-06T21:36:06.250Z",
794-
"consideredByBuildersAt": [
795-
{
796-
"pubkey": "0x81babeec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9",
797-
"timestamp": "2022-10-06T21:36:06.343Z"
798-
},
799-
{
800-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
801-
"timestamp": "2022-10-06T21:36:06.394Z"
802-
},
803-
{
804-
"pubkey": "0xa1dead1e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc",
805-
"timestamp": "2022-10-06T21:36:06.322Z"
806-
}
807-
],
808-
"sealedByBuildersAt": [
809-
{
810-
"pubkey": "0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f",
811-
"timestamp": "2022-10-06T21:36:07.742Z"
812-
}
813-
]
814-
}
815-
```
816-
817-
Only responds with success when sbundle is already simulated.
818-
819-
When bundle-relay has simulated the bundle but the target block (or maxBlock) has not been reached:
820-
821-
```json
822-
{
823-
"isSimulated": true,
824-
"isHighPriority": true,
825-
"simulatedAt": "2022-10-06T21:36:06.317Z",
826-
"receivedAt": "2022-10-06T21:36:06.250Z"
827-
}
828-
```
829-
830-
where
831-
832-
- `isSimulated`: boolean representing whether the bundle gets simulated. All other fields will be omitted except simulated field if API didn't receive bundle
833-
- `simulatedAt`: time at which the bundle gets simulated
834-
- `receivedAt`: time at which the bundle API received the bundle
835-
- `consideredByBuildersAt`: indicates time at which each builder selected the bundle to be included in the target block
836-
- `sealedByBuildersAt`: indicates time at which each builder sealed a block containing the bundle
837-
838539
### flashbots_getFeeRefundTotalsByRecipient
839540

840541
The `flashbots_getFeeRefundTotalsByRecipient` JSON-RPC method returns the total amount of fee refunds that have been earned by a specific address. Our refund process calculates these values weekly.

0 commit comments

Comments
 (0)