{"title": "MEVBoostAA", "website": "https://github.com/MEVBoostAA", "createdAt": 1682037829937, "userGithub": "doublespending", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..o9N4v5y7R1ByXgc4fLLdhnBFkccjfy6jxwn6dwT1OtA5yxtU_V6TX8v6AaLhF4aJcI8zmXJrWOSqSwuiNEixCw", "type": "Ed25519Signature2018", "created": "2023-04-21T01:18:13.391Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-04-21T01:18:13.391Z", "expirationDate": "2023-07-20T01:18:13.391Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xBBbb17A8C1Ce64be28faCd93b22450abB01B5DCA", "hash": "v0.0.0:WyBEmZizOli+11MmJbzN1Q5UvVQVBRBLHYuxYPgamRc=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#MEVBoostAA#33960178"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..4VsIfm3lYn96NODp2g_naaX191YPETMDEQfePV_8MH--_J3ou-ng0mz3NSaQHpaHkBC1Pb4nj_ijF1zNiUxyAQ", "type": "Ed25519Signature2018", "created": "2023-04-21T00:41:58.070Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2023-04-21T00:41:58.069Z", "expirationDate": "2023-07-20T00:41:58.069Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xBBbb17A8C1Ce64be28faCd93b22450abB01B5DCA", "hash": "v0.0.0:D0BkZpN87Bf+867LlS/d89HMWUY/o1L43hlh5MXbdng=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#0xbbbb_eth"}}}, "description": "# MEVBoostAA\n\nOnly validators and searchers benefit from current MEV ecosystem while the transaction senders where MEV is actually extracted from are excluded.\n\nIn fact, senders need to pay twice for the transaction execution: the transaction fee and the fetched MEV. The latter always goes against the intention of the sender and can be consider as a robbery in secret towards sender.\n\nThe project supports senders to capture MEV under the ERC-4337 framework:\n\n- Senders use special ERC-4337 wallets called `MEVBoostAccount` and send special userOps called `BoostUserOp` which invokes boost methods of `MEVBoostAccount`.\n- Searchers use a special ERC-4337 paymaster called `MEVBoostPaymaster` which refunds maxium MEV to senders by `BoostUserOp` auction and also pays transaction fee for `BoostUserOp`.\n\nThe project mainly has following advantages:\n\n- Improve the current MEV ecosystem and maximize the sender's interests by trustlessly ensuring the maxium MEV capture by the sender.\n- It provides a completely **decentralized** and **permisionless** MEV-Share solution.\n- Considering the existence of MEV, the project promotes the adoption of the ERC-4337 wallet by providing the build-in mev capture features and making transaction cost possibly less expensive than the EOA.\n\n## Value Redirection\n\n### Current MEV Ecosystem\n\n- In the view of the sender\n  - `sender` --[fee to excute tx]--> `validator`\n- The fact goes against the intention of the sender\n  - `sender` --[fee to excute tx]--> `validator`\n  - `sender` --[mev caputured by searcher]--> `searcher`\n  - `searcher` --[share mev with validator]--> `validator`\n\n### MEV Ecosystem with MEVBoostAA\n\nMEVBoostAA captures MEV from searchers to senders based on the framework of ERC-4337. so, senders will be protected.\n\n- `sender` --[mev caputured by searcher]--> `searcher`\n- **`searcher` (as a paymaster) --[fee to excute tx] --> `validator`**\n- **`searcher` --[maxium MEV refund]--> `sender`**\n- `searcher` -- share mev with validator --> `validator`\n\n## SDK\n- [sdk for account](https://github.com/doublespending/mev-boost-aa-account-sdk)\n- [sdk for searcher](https://github.com/doublespending/mev-boost-aa-searcher-sdk)\n\n## Work Flow\n\n![image info](https://github.com/doublespending/MEVBoostAA/raw/main/graphs/interaction.png)\n\nThe sender just need to depoly a ERC-4337 wallet `MEVBoostAccount`, construct a `BoostUserOp` (i.e. a userOp calling the `boostExecute` or `boostExecuteBatch` method) and broadcast it to the ERC-4337 mempool.\n\nThe first parameter of the method `boostExecute` or `boostExecuteBatch` is `MEVConfig` which including `minAmount`(i.e. minium required mev amount) and `selfSponsoredAfter`(i.e. timestamp after which the `BoostUserOp` is executed without `searcher` and `MEVBoostPaymaster`).\n\nSearchers who have deposited fund to `MEVBoostPaymaster` will grab `BoostUserOps` in the ERC-4337 mempool.\n\n- If the `BoostUserOp` is profitable, the searcher will fill `paymasterAndData` to make `BoostUserOp` valid, build a profitable ERC-4337 bundle including that `BoostUserOp` and send it to the bundler. Finally, if `BoostUserOp` is success, the sender will get `minAmount` MEV value from searcher and the `BoostUserOp` is sponsored by the searcher.\n\n- If the `BoostUserOp` is not profitable, the searcher will not fill `paymasterAndData` of the `BoostUserOp`. That `BoostUserOp` in the ERC-4337 mempool will be valid after timestamp `selfSponsoredAfter`. The bundler will regularly bundle and execute that `BoostUserOp`.\n\nBriefly, a `BoostUserOp` is valid when one of the following conditions is met:\n\n- The searcher fills the `paymasterAndData`, pays `minAmount` MEV value to the sender and sponsors that `BoostUserOp`.\n- The `BoostUserOp` is valid after timestamp `selfSponsoredAfter` and sponsored by the sender.", "projectGithub": "MEVBoostAA", "projectTwitter": "0xbbbb_eth"}