<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>deca12x</title>
        <link>https://paragraph.com/@deca12x</link>
        <description>undefined</description>
        <lastBuildDate>Mon, 13 Apr 2026 06:57:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>deca12x</title>
            <url>https://storage.googleapis.com/papyrus_images/e447ccdf59997bdb619e5da41dcf5544a23c3c1bec060232a9192bae7d8845db.jpg</url>
            <link>https://paragraph.com/@deca12x</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[🟦 How to Build your first Base Mini App]]></title>
            <link>https://paragraph.com/@deca12x/first-miniapp</link>
            <guid>Eha1a39UmeVY3gLNLxBB</guid>
            <pubDate>Tue, 09 Sep 2025 20:13:52 GMT</pubDate>
            <description><![CDATA[This mini report distills the actual developer experience into a clear setup flow with caveats, tips, and dev tools. Follow these three steps in order to build and test your Mini App effectively.]]></description>
            <content:encoded><![CDATA[<hr><h2 id="h-why" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Why?</h2><p><strong>By: </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/deca12x"><strong><u>Deca</u></strong></a></p><p><strong>Date: 9th September 2025</strong></p><p>The past two weekends I built two Base Mini Apps at the Aleph Hack (Aug 29-31, 2025) and ETHWarsaw (Sep 5-7, 2025) respectively.</p><p>Upon <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/evslatts"><u>Evan</u></a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/_clemens__"><u>Clemens</u></a>’ request, I made this mini report, which distills the <em>actual</em> developer experience into a clear setup flow with caveats, tips, and dev tools.</p><p>Shoutout to <span data-name="lemon" class="emoji" data-type="emoji">🍋</span><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/limone.eth"><u>Limone</u></a> , <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/0xcaso"><u>Caso</u></a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/bianc8"><u>Bianc8</u></a> who gave me advice along the way.</p><p><strong>Follow these three steps in order to build and test your Mini App effectively.</strong></p><hr><br><h3 id="h-step-1-choose-your-sdks-wisely" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><span data-name="books" class="emoji" data-type="emoji">📚</span><strong> Step 1: Choose your SDKs wisely</strong></h3><p>You’ll only need <strong>two libraries</strong>:</p><ul><li><p>One for Mini App logic</p></li><li><p>One for wallet connection<br></p></li></ul><p><strong>Use one of these combos:</strong></p><ol><li><p><code>farcaster/miniapp-sdk</code> <strong>+</strong> <code>coinbase/wallet-sdk</code> ← works best right now</p></li><li><p><code>coinbase/onchainkit</code> <strong>+</strong> <code>coinbase/wallet-sdk</code></p></li></ol><p><span data-name="no_entry_sign" class="emoji" data-type="emoji">🚫</span> Avoid <code>farcaster/frame-sdk</code> - it’s deprecated and will cause issues.</p><p><span data-name="no_entry_sign" class="emoji" data-type="emoji">🚫</span>Don’t use BOTH <code>farcaster/miniapp-sdk</code> AND <code>coinbase/onchainkit</code> - pick one of the two.</p><br><p>Once you've picked, move on to Step 2: manifest setup.</p><p>Docs:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://miniapps.farcaster.xyz/docs/getting-started"><u>https://miniapps.farcaster.xyz/docs/getting-started</u></a> OR <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.base.org/onchainkit/getting-started"><u>https://docs.base.org/onchainkit/getting-started</u></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.cdp.coinbase.com/coinbase-wallet/coinbase-wallet-sdk/install"><u>https://docs.cdp.coinbase.com/coinbase-wallet/coinbase-wallet-sdk/install</u></a></p></li></ul><hr><br><h3 id="h-step-2-fill-out-the-farcaster-manifest" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><span data-name="receipt" class="emoji" data-type="emoji">🧾</span><strong> Step 2: Fill out the Farcaster Manifest</strong></h3><p>Use the official manifest builder:<br><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://farcaster.xyz/~/developers/mini-apps/manifest?domain=yourdomain.com"> <u>https://farcaster.xyz/~/developers/mini-apps/manifest?domain=yourdomain.com</u></a></p><br><p><strong>Hint 1:</strong> You’ll need to generate and include five images at exact dimensions:</p><ul><li><p>icon.png: <strong>512×512 px</strong></p></li><li><p>splash.png: <strong>400×400 px</strong></p></li><li><p>hero.png: <strong>1200×630 px</strong></p></li><li><p>screenshot1.png: <strong>1200×800 px</strong></p></li><li><p>screenshot2.png: <strong>1200×800 px</strong></p></li></ul><p>If using <strong>Next.js</strong>, place them in your /public folder.</p><p>You can use <strong>Canva</strong> to easily create documents of the correct size.</p><br><p><strong>Hint 2:</strong> To generate your manifest, do not do it via the CLI!</p><p><code>npx create-onchain --manifest</code></p><p>Instead, to get your farcaster header, payload and signature, do it directly from the Farcaster app on your phone:</p><ol><li><p>Open settings</p></li><li><p>Open advanced tab &gt; enable developer mode</p></li><li><p>On developer tools &gt; domains, enter your domain and generate manifest</p></li><li><p>Copy and paste the values of header, payload, and signature you have in the clipboard in the related env variables</p></li></ol><br><p><span data-name="check_mark_button" class="emoji" data-type="emoji">✅</span> Once all fields are green in the manifest tool, you're ready to build out your Mini App’s functionality.</p><hr><br><h3 id="h-step-3-testing-and-debugging-what-works-and-what-doesnt" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><span data-name="test_tube" class="emoji" data-type="emoji">🧪</span><strong> Step 3: Testing and Debugging - What Works and What Doesn’t</strong></h3><p>By default, simply opening your app at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://localhost:3000">localhost:3000</a> and using browser devtools is <strong>not sufficient</strong> to test Farcaster-specific behavior.</p><p>Here’s why:</p><ul><li><p>The SDK provides a context object (sdk.context) populated <em>only</em> when the Mini App is rendered within a Farcaster client - like <strong>Base App</strong>, <strong>Farcaster App</strong>, or the <strong>Farcaster manifest preview tool</strong>.</p></li><li><p>You can test your <strong>own</strong> user context this way (e.g. <code>sdk.context.user</code>) via the preview site.</p></li><li><p>But if your logic depends on <strong>other context</strong>, like the author of the cast (<code>sdk.context.location.cast.author</code>), the preview tool won’t work - it doesn’t simulate the full cast environment.<br></p></li></ul><p>This means that to test all context fields fully, you <strong>must push your app to production</strong>, post a cast linking to it, and open it from Base App.</p><p>But:</p><ul><li><p><strong>Pushing to prod takes time</strong> - typically 1-5 minutes per change (depends on host like Vercel, your git branches setup, whether you test the build locally, etc.)</p></li><li><p><strong>You can’t access browser logs</strong> from Base App - debugging becomes hard.</p></li></ul><hr><br><h3 id="h-two-workable-debugging-solutions" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><span data-name="toolbox" class="emoji" data-type="emoji">🧰</span><strong> Two Workable Debugging Solutions</strong></h3><h4 id="h-option-1-use-a-tunneling-service-eg-ngrok" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0"><strong>Option 1: Use a tunneling service (e.g. ngrok)</strong></h4><ul><li><p>Lets you test locally using a public URL</p></li><li><p>Works with the Farcaster manifest preview site</p></li><li><p>Preserves full access to browser logs (e.g. console.log)</p><p><strong>Setup</strong>:</p><ul><li><p>Terminal 1: <code>npm run dev</code></p></li><li><p>Terminal 2: <code>npm run ngrok</code> (set up a script for this in your package.json file)</p></li><li><p>Paste the generated URL (e.g. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://random-id.ngrok.io">random-id.ngrok.io</a>) into the manifest preview tool (without <strong>https://</strong>)<br></p></li></ul></li></ul><p><strong>Pros</strong>:</p><ul><li><p>Fast feedback loop</p></li><li><p>Easy access to logs</p></li></ul><p><strong>Cons</strong>:</p><ul><li><p>Can't access full cast context (e.g. <code>sdk.context.location.cast.author</code>)</p></li><li><p>You might run into extra issues if your app’s logic changes based on domain (e.g. different auth providers per subdomain)</p></li><li><p>Tunnels may need to be reset often...</p><ul><li><p>Clear cookies, browser cache, and app state</p></li><li><p>Restart both servers (<code>npm run dev</code> AND <code>npm run ngrok</code>)<br><br></p></li></ul></li></ul><p><span data-name="mag_right" class="emoji" data-type="emoji">🔎</span> This setup is useful when you're building more complex flows.</p><hr><br><h4 id="h-option-2-use-an-in-app-debugpanel-component" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0"><strong>Option 2: Use an in-app DebugPanel component</strong></h4><p>This is what I used:</p><ol><li><p>Create a component that logs and displays relevant data visually inside the Mini App<br><code>if (debugMode) {<br>&nbsp; return &lt;DebugPanel data={sdk.context} logs={clientLogs} /&gt;;<br>}</code></p></li><li><p>Serve the app at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://yourdomain.com/?debug=true￼￼">yourdomain.com/?debug=true</a></p></li><li><p>Post a cast containing this URL</p></li><li><p>Open the cast in Base App → DebugPanel is visible</p></li><li><p>Copy-paste DebugPanel logs from your phone to your laptop (possibly feed them to an LLM)<br></p></li></ol><p>Real example I built with DebugPanel:<br> <span data-name="link" class="emoji" data-type="emoji">🔗</span><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://base.app/post/0x23f1a925729e1f3a2ae58b2385b8e72764925121"> <u>https://base.app/post/0x23f1a925729e1f3a2ae58b2385b8e72764925121</u></a></p><p><strong>Pros</strong>:</p><ul><li><p>Full access to all real context fields (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://sdk.context.location.cast.author">sdk.context.location.cast.author</a>, etc.)</p></li><li><p>No compromise - this <em>is</em> your final deployed Mini App</p></li></ul><p><strong>Cons</strong>:</p><ul><li><p>Slow feedback loop (prod push every change)</p></li><li><p>You must manually transfer logs to your dev machine</p></li></ul><br><p>If this was useful, please <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://base.app/post/0x058f80302d06ab921bcbd576028d25957e9938a7">Recast this guide</a>!<br><span data-name="v" class="emoji" data-type="emoji">✌</span>Deca</p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/2dd1140dfbc5be0f65473cdd5d8b8f6030ab07b7666ecad77e6a36e5b2d14d83.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[A Letter to Well-Intentioned Crypto-Skeptics]]></title>
            <link>https://paragraph.com/@deca12x/heyanon</link>
            <guid>H7CDpqDkXs1iPMZUA1um</guid>
            <pubDate>Wed, 11 Dec 2024 17:37:14 GMT</pubDate>
            <description><![CDATA[Hi Anon, I am writing because I think you'd appreciate knowing about the other camp in crypto, the one you do not hear about, the one with vision, values and hope. This second camp is not loud like the traders, it's not shortsighted or superficial. My thesis is as follows: I’m driven by the belief that blockchain is the one paradigm-shifting technology which, in a world where macro trends flirt with dystopian risk (AI, climate, biotech, geopolitical divide...), can rein in all the rest. Its a...]]></description>
            <content:encoded><![CDATA[<p>Hi Anon,</p><p>I am writing because I think you'd appreciate knowing about the other camp in crypto, the one you do not hear about, the one with vision, values and hope. This second camp is not loud like the traders, it's not shortsighted&nbsp;or superficial.</p><p>My thesis is as follows: I’m driven by the belief that blockchain is the one paradigm-shifting technology which, in a world where macro trends flirt with dystopian risk (AI, climate, biotech, geopolitical divide...), can rein in all the rest. Its approach to “proof, not trust” can fundamentally change the game-thoeretic rules of any system through financial incentive alignment.</p><p>Let me explain in a way nobody has ever explained it to you. The maths (cryptography) enables a system where:</p><ol><li><p>All the rules of the system are written&nbsp;in code - i.e. no single entity has control of the system</p></li><li><p>The system has money embedded in the code - this enables financial incentive alignment - i.e. behaviours that are beneficial for the system are financially rewarded and behaviours that are harmful get penalised</p></li><li><p>The code/rules of the system are visible to everyone, but cannot possibly be changed unless by democratic consent</p></li><li><p>Participants of the system no longer have to trust counterparts, brands or institutions when interacting. All they have to trust is their counterparts' self-interest - if they behave in a nefarious way, the fine is larger than their benefit.</p></li></ol><p>If you are my intended audience, you'll have perceived the increasing global chaos over the past few years and your logical response to the perceived chaos will be to try and leave a net-useful impact. I think a lot of people see a similar picture of the world but that instead leads them to nihilism. Many crypto traders are like this.</p><p>Blockchain / crypto / web3 routinely makes headlines when the price is high and goes silent when the price is low. The traders and speculators are the ones luring unsuspecting normies in with promises of instant gains, but really just looking for exit liquidity. Furthermore, being a technology in its infancy that embeds money in code, it's been adopted from the fringes of society.</p><p>Hence, news outlets see wild predatory trading behaviour, uncensorable systems, North Korean hacks, dark web payments, and perpetuate the story that this is a dangerous and pointless technology built to defraud people. It is not. This technology is our best shot (as far as I have seen) to restabilise this increasingly unhinged world.</p><p>If I have sparked some interest, reach out, comment my post on X.</p><p>WAGMI</p><p>Deca</p><div data-type="youtube" videoid="nkazTlS6tTg">
      <div class="youtube-player" data-id="nkazTlS6tTg" style="background-image: url('https://i.ytimg.com/vi/nkazTlS6tTg/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=nkazTlS6tTg">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="youtube" videoid="LNUsvLhGwTQ">
      <div class="youtube-player" data-id="LNUsvLhGwTQ" style="background-image: url('https://i.ytimg.com/vi/LNUsvLhGwTQ/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=LNUsvLhGwTQ">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/5c60f324db62f2d2e1a802db1b1f78a9.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[A Diagrammatic History of Ethereum Account Abstraction]]></title>
            <link>https://paragraph.com/@deca12x/aa</link>
            <guid>aJRijJXbFS6A6fZDKJL7</guid>
            <pubDate>Mon, 09 Dec 2024 15:03:07 GMT</pubDate>
            <description><![CDATA[I did a deep dive into the EIPs relevant to AA so you don't have to. Easily understand the history and future of AA through diagrams.]]></description>
            <content:encoded><![CDATA[<div class="relative header-and-anchor"><h2 id="h-note-from-author">Note from Author</h2></div><p>I am starting the research phase for this paper today, on December 1st 2024. I am applying for the Ethereum Foundation’s 2025 Software Engineering Internship, with a specific interest in improving Ethereum’s UX. Therefore, writing this paper will be an effective way to get an in-depth understanding of AA. I am already familiar with the concepts of ERC4337, including bundlers and entry-point contracts, paymasters and transaction sponsoring…</p><p>I will now go deeper, by reading EIPs 86, 101, 1613, 2771, 2938, 3074, 4337, 7701, 7702, RIP 7560 and other related sources.</p><div class="relative header-and-anchor"><h2 id="h-introduction">Introduction</h2></div><p>“The goal with Account Abstraction has always been to solve the cross-chain UX problem” - Yoav Weiss</p><p>Account Abstraction (AA) involves three parts of a transaction flow:</p><ol><li><p>Authorization Logic (how the transaction is approved)</p></li><li><p>Execution Logic (what the transaction does)</p></li><li><p>Fee Payment (how the validator is paid)</p></li></ol><p></p><p>Following years of exploration with the EIPs described in this paper, EIP-4337 condenses the key goal of Account Abstraction into: allowing users to not have EOAs, and instead “use smart contract wallets containing arbitrary verification logic”. This is a technical, practical, operational view of the goal.</p><p></p><p>On the other hand, the normative end goal has always been to improve UX. Specifically, the three improvements listed in the Pros and Cons tables in this paper are:</p><ul><li><p>Signing UX</p></li><li><p>Wallet Recovery</p></li><li><p>Gas Payments</p></li></ul><p>This can be further abstracted into the real final goals:</p><ul><li><p>Improving onboarding and usage friction by reducing the number of steps and concepts users need to understand when using dApps.</p></li><li><p>Giving users peace of mind regarding fears of having their seed phrase lost or stolen.<br></p></li></ul><p>EIP-4337 presented a clever way to address the UX goals of AA without the coordination effort and additional work required by infrastructure-layer changes. It can be seen as a workaround based on the constraint of avoiding consensus-layer changes.<br></p><p>Following EIP-4337, newer proposals push Native AA to the forefront. Native AA refers to embedding functionality into the infrastructure-layer, as opposed to aiming to address AA. RIP-7560 adopts many of the concepts from ERC-4337, but instead of relying on higher-layer infrastructure, it combines them with concepts from EIP-2938, thereby requiring consensus-layer protocol changes.<br></p><p>While this is the current state of collective brainstorming and development, to fully understand the problem being faced, one must look at the full history of AA, which began in 2015 and has seen many proposals since.</p><div class="relative header-and-anchor"><h2 id="h-traditional-transaction-flow">Traditional Transaction Flow</h2></div><p>Before delving into the evolution of AA ideas brought forth, we must understand what transactions are and the traditional flow of transactions on Ethereum.</p><p>A transaction is a write operation - i.e. an action that alters the onchain state. There are two types of transactions on Ethereum: Ether transfers (from EOA to EOA) or function calls (from EOA to Contract).</p><p>The diagram below illustrates the standard transaction flow on Ethereum.<br></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5b764536ad7ce77bd7adb825400a770d.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC8UlEQVR4nGP48eOHrIJCTl7e////f8PA////P378KCUt7ebubmhsHBgcDBGEy379+tXB0TEwNNQvICA2MTE6Li4mLu7Bgwf/MQDD8d27pZkY3c3MXz17hiyxfskSBU5ObUkpSQYGBU7OqU1NyLL//v/XkZVlYGCQZGDgZQABK23tl69erVyxYvbs2deuXUNY0JaRkW5qUWDvOLGlZc++fdu2bl2/fv2a9euTnJ1jtHRjDYziDY3j9Y1CdfQ2rN+wecuW5cuXb9q0afXq1SlOTjmW1vn2DllWNsX2jmVh4ctXrWppaSktLV2+fDnCgjRvbx0GBnMB4Y66uu7e3smTJu3ds+fqrVsTCouaff0C1DUD1TRiDYw6YuPmzZvb3NI8Y8aMJ0+ePHr8uDo0rNLNI1RTJ1BDK8faticr6879+zNnzOjr60Pxwdz+/hx//5KoqLMnTnz9+vXlixe/f//+/utXW1q6v7ySETevpYCIBa9App395k2buru7Z8+efevWrc9fvhR4eJiy82gyMGgxMNjwCbUkJj17+XIGGJw4cQJhAWa0/P3z59///2umTcvy8PAyMPQzNkl2dplYWvrgwYO7d+9eAIMfP34snzixISEh1dvb39yiPDx82ZQpX79///r168ePH7+CwY8fP0AW/P3z5++fP5jW/MNAaAAi8uPHjxmzZk2ZNm3u/PlLliyZMmXK7NmzZ8yYMQUMXr9+jcUH+MFvWEqFmL5t69Z58+bdvXv31q1b165du3z58i0YOHHiBDkWQMA/sOn79u1jYGBgY2O7fevWLySLkQGZFvz6/bslMzPX1S3X0zPFySnZzj7T3fPpkycQL0LUQBhkWvDh48eWuLiOwKAILZ0ILZ0KF/caL59L585B0ggVfPDh48fm+IQaLx8/VfVADa0kU/OGwOBrV65QzYJfv39HmJurMzBAkCkPvxE33+3r17FYAC/gSAWHtm9fNWP6yhkzlk+ZumrGjE0LFnz+9Am5xIQAAIgYBAGrTlelAAAAAElFTkSuQmCC" nextheight="716" nextwidth="1600" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p></p><div class="relative header-and-anchor"><h2 id="h-improvement-proposals">Improvement Proposals</h2></div><p>This section presents a comprehensive picture of the evolution of Account Abstraction, describing each relevant improvement proposal in a chronological order.<br></p><p>Each improvement proposal will have a table of pros and cons within a structured set of relevant categories:</p><ul><li><p>Signing UX</p></li><li><p>Wallet recovery</p></li><li><p>Gas payments</p></li><li><p>Security</p></li><li><p>Dev overhead</p></li><li><p>Future proofing</p></li><li><p>Validator incentives</p></li><li><p>Implementation</p></li></ul><p></p><p>Furthermore, similar to the transaction flow diagram above, each improvement proposal below will have a similar illustration depicting the difference under each approach. The colours yellow and blue represent proposals requiring, and not requiring, infrastructure-layer changes respectively.</p><p></p><div class="relative header-and-anchor"><h3 id="h-eip-101-2015">EIP-101 (2015)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-101"><em><u>https://eips.ethereum.org/EIPS/eip-101</u></em></a></p><p></p><p>EIP-101 redefines EOAs to no longer store Ether, i.e. only store code and storage. Transactions are simplified to include only the recipient, gas limit, data, and optional code for contract creation, eliminating fields like msg.value.</p><p>Ether is instead managed by a unique premined contract at address 0, which handles transfers and balances for all accounts.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/66c0d3446eaca8703f3a4468304bfefe.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAABYlAAAWJQFJUiTwAAAE1UlEQVR4nG2UX0xTdxTHf8ZEHaEWWux/e639S29vS2//01v6b/17YZSKIANlwkCqVwnVVgq1dGst3JBmNekwpq6Z2/pA4p54NhnOmrinig9NyGSGaOKU8jKmy5zJIk148ptPTs45Lycn55sDLl66FI1GSZJMpVJPnjxZX19/XHncOxyEMZlv0IPhJqlRjHW1Y5+ZzbjR5NVjuKmjG8Nwk63HovdoHb02e9Cqd2vacYPeo9V7tG1WBD/tm16MxG9MR9JTgCCIcDicSqXy+fz6+nq1Wr1//z7e6RCJmVq9VK0RC0VMmZxnMLWiWjGMQDACGUxytUak0UkUCGSxqrR6qUzOgxFIIuWIpWwYgbAO1VR0NBIbn7hwBsRisVAodPPmzVwuFw6HH5bLb96+7cMsik8aMDbPxOAgFCraRNc0MQQA2HiQjs5sPdjgE0sxNk8MgHa3RChUhELV0pk6OvM4ABb20daDByEAulQoSCaTpVLp7t27pV2trq6Wyw+7/XYHpvI5DLjL+GkHiruMXR7MblZ1utrtZpXdrO72Yj6HoV0n81g1DkyFu4wdeoXPrsddRs9u7PZacJdxsBcHY7saGRkJBoMEQWxsbFQqFfxz/zHtMYaMidgUfJQv0EAUfgNHweajfD7Kp4toSqeSq+TCNjlXydH7dFwlp1nYJG4XJZZmEkvxa/lYYmkmeeva5etTIJPJLC8vF4vFSqVSrVY3NzfX1tYGca9DIXEoZZ06tVly3KmQWWQiL4pYYYkNlnpRBDegBiHfi8JWWOJFYRss8aCKCz345VMn6kQGT0YGeon+XhCNRrPZLEmStVptZ2fn9atXG8/+6LNaWw8c0B5hmlhceWOjktosBEBDY6A0hhjsa2umOwVCIQAmFkcEgIHJVlFp8sbG807XtRO9sUAgFghc7Q7MBHqmgifA5ORkPp/P5XKxWCyTyVSr1bW1NbdSJQJATWsxsbgGJruDy4cbD2toDCW1SbJ/v4bGkB06pKQ2Y9yjalqLCAAFhYpxeJMeL+F07XHB7pzw+T5skMlkkslkPB4nSbJarT548MBvMUGU/VIWHRXwYC5DJ4KkLJqKz5ayaMdpDUaJQMaiS1k0nRgSM5rY+4CQTtGJoFAQnwj49wgF/KOBzg83yGazhUIhl8sRBHHv3r33/70fONcnMgjcAw6DX4t1GXWeNrlZgnUZ1U5E61K6Bxy+0y5nn01pa7UETM6+DqUd1nna5pZmsz8tkHeu11n8cT6Rm/0woFAo1D1aLBZXVlbK5XI4OjmdjCTSs4n07Ffzc9OJ6MTF8auJyNVE5Kv5uXpnOhFNpGfTi18v3MjUk2Lp1p3l7/Yo/fz9N98uglAo5Ha7h4aGUqlU3azhcHiBJGOx2VDovNfrS6evX4lEeoLBsyOj4XD0SiT65u0//75799fO31u17Zd/vn61VduqbW/Vtp+/eLnHs83nW7XtX1Z/BdlstlQq/bCr24Xbvz169PvTp8O4P6DVnDSbBi2WHr2+H8P6zO39GBbQ6QcwSz+G4Sj6pddDnjs3Pz72UdJjowvjYzNnvwDxeJwgiGQyWf8ZKysrz1+8OOVyQQAo6EewYwKUzULZnFZqM9JyRHq4SdnCMEMCNgA+REGOjc0NDaaGz3yU9PCZxMjZ/wFWO+VYDpO2BgAAAABJRU5ErkJggg==" nextheight="922" nextwidth="2072" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b6b2ea34e9e39b18cc4977b8efb8f0c.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAABYlAAAWJQFJUiTwAAADN0lEQVR4nK2TbUhTYRTHj2BUX5I+9KkiLQpUAkUjQfHlFtOZs01Ih1mJg1kfHDpfesGXOXMuwUzTzDZW+bLRhMyBE5up6bWNhjZzpSm+O8gRgoJXt2fuxr2zMYusoN+n85z7PM//nPucP5A0iIbcye+S5M7Ac2mxWNRqtYZGpVJZLBYgSSdCNnqPO6Bw/DjvQMgd/4rJZMJxfG1tzbVUKltZrAQuN4VB09fXB64PbW0vh4dNnlXPzy8UFoqamlV6/Xt3niCI9naNTtev7eoZxA0LC5abNwswDMMphu5X14nFkuIScUmJWKFQWK1WhBDMz012aWQAEBp0eMI8QBAbLkl5o9QLKHyPwNLcZ1eLNjs67ntwD50HAAYWVlffIBQKvy5b4xgRAHDIB3y8IcDfb8z8yXUPPG0sOXEAsHCICIWwYFAqW9RqtUqlzuIFJjGBxYBkFhTmc57InikUco1GK7qFsWOBGQOXOVBdnm4cNuN4f7fu7d2ixFQ2cJjAjoNWudBmRyTppATaWiu5bOqWiwzI4vmJxaUSiWRgEM/mB1/A4FICxEZBXlZ82hVeXm7O5ORMFi8k4RyksuF8OGTfiK17JKuQlMlkTfLajBw+VdAdgffLloJ1YnNboP1FVSqbOpDKAVF+8OYGQZLkxoatooiRkQKMSOBxoeGBYOLL7BA+qDcY74kS+WkQj4GA51Ut5Zs/TRn0Q6bRcdEtZjKLyqdxoEaatuV0bgs0yUtD/akyI88Ch7nPJYCQY2lufOxDr1Hf/XHkjXV50fVDdbqe4ju5pcU5uTn8bEH6U0WjzW4niPV1YrOr46G0KJp/9bS0KLqns9H1ZpSArvNxbBT47ofAYyDMPOk5qZ4QBCWs1WrLysrLJZU1tfVG44jJNOphC2qet5zUIGyhLfdBsC4vGt91aDXPe18rx8cG6NbcOH8yAY7jq6vfsJhwAJiZHrfbt0duF7Z98Bc4SZI0GAzXrwVkcPdi4dT7N8tv0060/0HAQXnIhpBtF8eSNCsrK3XSmNxMSGJCoQC6X5XSacd/6YACIXQt+WjQKQgJgDMBUFWe8Vcd/BPTU6OzU4aF6ZEJM25Zmv7j/u+RlvMSh2ZUawAAAABJRU5ErkJggg==" nextheight="1134" nextwidth="2624" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-86-2017">EIP-86 (2017)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-86"><em><u>https://eips.ethereum.org/EIPS/eip-86</u></em></a></p><p></p><p>EIP-86 introduces the idea of abstracting transaction origin (who sent it) and signature validation (how it’s authorized), or in other words, “abstracting account security”</p><p>It also introduces the CREATE2 opcode, for deterministic contract creation. Although EIP-86 was never implemented, CREATE2 was later re-proposed and finalized as EIP-1014 and introduced in the Constantinople upgrade (February 2019).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/50df925f888d77966ea06a8c2710a951.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE4ElEQVR4nG3T7U9TVxwH8IOJ1m0+oBKg3tJyS58LfaK9vfSJQlv6ePv8gFIK2HaFrh2WRi8wr1ZXx6KppkK82eZo2HaTRjTNkiXDuFcTo/GFLyQEslR84YyLf4GJM1mAxezFfvnk5HtenZyc7wE4jhMEUSqV5ubm1tfXX7x4sfZsbXQiKjeI3VGHNWyWGzotAaMtbOr36s1+oyVgdAxarGGzY9DSi2mxqMN5YsDg0pq9vX0eQy+m1TnQcNJ/6QZxmSzMfHUG4Diez+cJglhYWKjX65ubmw9XH4ZHfEKUozLJ0QEFV8mW6IU6p1ph7BKiHL6qQ2WSSfVChbGLp2Jr7CqpXshVwkKU06FgdchYXCVba0cmCxOTl9Lx0yOgWCziOE6S5OLiYj6ff/Lkybt378enEtJeERa12QbNziGrLdKvsasyRLJ6v0Kt3Fr65dsd31Arld1MrVSqv/1ArVSolcqPv976/ueb8z9dvXn7+sXrxPYBFEXVarXl5WWKolZXVx8/ehwdP2GL9PvGnK6oNZhwBxNu35gzlPBkiNSn+Oj4TDxDJCcLE+nZRPJsbHwmnp5NDGfDGSKVPf+v3MV07stMMjcKstlsOp0eGxuLRCLpdPr51vO1Z2uBmI8lY0BCuqy3k6OE2yTQMfhwmwRqk0AMMb2p46hYJ2CI6RwlzBAf77bIWgXNR9oP8nu4Z69OzVw7s+uLMj55IQ3K5XKtVqtWq+vr6/V6/c+XLzc2NlKRkAdVOFXykEFjVXS5UaVVIQnpe5wquUulCBs0YaPOLBW5UaVTJfdrEQzt9muRXNh/bjT6wfmx6OmTEVAoFEo78+bNm7dv3/71+nV9a+uU3aE4fBRpbu2D2ZLGY+rW4/x9e3UQUwu18fft10NMK4cn/PijPpjN20vT0BlIc6viWPOlwZNfx0amPf5z/uA5f/BCIJTzB7ZbRJJkqVQiCKJYLP6xubm+seFWo3ywR9nUooeYeoipoTPULXTenj0CGk1Lb9PQGZ2HGtUtdAGNNsDmaOgMZVOLkcnmAGBksqc9/pzNMWV35u3OCbsTEARRLpeLO1MqlbZr+uhRYKBfQD8ihxk6MRflwSgPRngslM+WwxDKg3VirhyGEF67GGoxKcQIjyWHIZ2YK4KaTQrR1FDws7AnG/ZORrzJsA9cuXJlt6MkSeI4fu/evfd/v5+YnpD0d3oSbnvMNjBkMUWMKrvSMmTWeHr0fp0n4T6Zi7jGnBpPj23Yao9ZNZ4e02B/ZeW7pfuV8u1r83dvzN+9sVCbv7hQAHNzcyRJLi0tURS1uLi4vLz8+4MHQZelVybADIhZ3YUZEAsqNXaLzYgEMyBek8alR3RS/u7Wb9YGzDoLKnUZ1MOYJRnCPh8J7ZocCSUi3u038Pl8qVSqVCqlUqlYLDZLEEGtjgYAt6FB9MlBaCd0HmqEAeDv2y+g0bgNDW0AcAA4AkAjAO0AtO5kZVNL3uHCMe+uacyXdXsBSZLVapWiqN1LPH369OWrV0Nm8wCbYxcIgwqFUyjyyWV2gQATd9p5fKdQ5O7s6oPZwz2aQmSQCIX+C/f6Ppj1+bNe7/ZPzmazhUJhdnY2l8vdvXOnvrU1imHcAwcQJqtfKEJZ7Sirvfs49GHt5XKZALi7ldcymeKpU5fj8f81F4+fj8f/AT6D4LrrG3omAAAAAElFTkSuQmCC" nextheight="464" nextwidth="1038" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><em>*Ethereum was still running Proof of Work at the time of this proposal, hence the miners</em></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cef69e88c9f7fa45ae95b568f0da460e.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAADlUlEQVR4nH2TfUxTVxjGnyzbP2PfmjjN3NiHroQmCBSqQltapbZOSunAoaODgiWAvbVQCjoHoraTTpyIdcQ1kSxk0YEwbZktgoPNsCxdyLZmkc2Wdckko2MSuz9qeq/rWdq7NRgrT05OcnPf9/m95z3vAYmLiYvcL4ZhwnE9+IumI/cYhqYjNB0Jh8OBQCAYDCZ8EiKEgJAoTUfYDzZtiU+UJBOLDIfvslk+n0+lUlEUFQqFHgwGG3TkiPn51S8sLZwQUrZzN+LaXlTC8thgDmc9lshqtYpEIoqipqamCgq2ZmbzxZJtki2ynJyNXq8X309PFcnWvLo6FlqQ9/jE2EUW83doQb716VdWInUF8nPhHD4ToZm7cXBvdyMvHTwustKwo/DRUfcXPp9/1u//6/ZiblZKBgeCTcjgQCHnRmgG1yeGFFJsE0IuxtslqK+RUZTRYnm/y3pYXQqDFnur0KhFe6tKW6szmZr6+z9r1sub63DIuKrN8ESrfq3Z3HH+/IXBwYHeXntF6bPFUgh4UEjReUgRa9Gl4T5xHoR88NKRsQ4fmHWTX33j9f7kv+nVVjymkGJzNg5QT1qPVqvf2dNiMt6aWzhhrq4uRw4XZTvQ1rR+i0SoUr0pkYhNLQc+PCruMK6gap46aEjpPrYrBrji6Bfxkfk6sjgxL5fjI7ZF/pveXC62SyAVgvsiWgzK2dlb09PfzQcX9zcVS4WxGjdtQHY61OpyitKbTM3OkVFdTWrBxrjVBrTuE8UAl4f7dFWPFElRrkRFKRxDp9j7XLy9YOuqs9saek/Wt7cqJyccLHhu7g+jQWPUiRsbCivfytZWigcHB0ZGRtxu96+B3y9+aj5n03Z27Dxn03559ZP/WrS7BPk8FApixX4+0M3Oa9LpJIR4PB6FQlnfYKjU1GprdXq9UaPRWCwWj8fDhv0TjSb2eIuc/bZjae/uW9lmWNV5cI1z6HQCwDDMvf9XAjMzMzM+frXRsBdAWZli5obX5/MteYnR+xfB9YlhdSkkeRBvhlSAsStnH3YCVvPBRd0eQUPVMzIxlHLUV6X+FviFrYYkEzzfuoR8vJSCtLXgZ8DtsC8LiEZo5uOeirPHX6tT43Dzc32n870/ss1J/uwRCt0ZdV26Nu78etJ1bdz5Z3D+IdYxsWDLe29krgP35dioFMvw840flgMsY5f0BISQMdeFnuN6u21/T5fBfqY9FLqzTMK/Rx6TNq4nqbsAAAAASUVORK5CYII=" nextheight="550" nextwidth="1229" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-1613-2018">EIP-1613 (2018)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-1613"><em><u>https://eips.ethereum.org/EIPS/eip-1613</u></em></a></p><p></p><p>EIP-1613 proposes the Gas Stations Network (GSN), a decentralised offchain network of relayers, which enables users to make “collect calls”, i.e. transactions paid for by the recipient.</p><p>The relayers pay the gas fee upfront and then get reimbursed by the receiver contract (can’t be an EOA). A singleton contract RelayHub manages relayers, ensuring their authorization and reputation, and handles reimbursements.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6d58771fc77db9a1d76618a89c33fb69.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEwUlEQVR4nIWTXVBSeRiH/9o62866HgKVQNAVgYzFj0RJAyzBBDSodJUSSCWiQM4K0UrSIscCT4sLiWEnO4WZMrbLBTvedW9DeWdqc2bHbKeZsqlxpsmPnXJ23FHu22eei3d+78U778UPuFwut9sdCoVQFF1YWFhcXJx7Ntdu1hVL9qt0CpFSKFIKpY0SkVKo0ilqjosr68r1cAsScrmD3V/WM3jZec0OHDsgCBIOhxcXFwmCeDz9+BxsECsONmjk9S3y2uNH6lvkqtb6k/oGZXNttVJksLWht/q8N3u/rG8Yuex1AK/Xa7fbMQzDcdxutycSibW1tdHR0fEH47eGb1/tu/rH77G7eMTTi4w/GMdH8Dsj+Nvlt1v/x+bm5tbWFkEQAEXRWCw2NTUVj8cfPnw4PT2dSCR+7rnoQV2uPqfZbvKgVzzoFdc1Z2+/y4k4evtd4chQZBIfvj+ET2D4BBa6E8AnsLuTdyKTOHY/jE9gkUl8ZHw4MokHwgMAhmGLxWI0GrVaLQzDL5ZezD2ba2o/mbYXcIUF+6rYeaUMGo+6r4qTnpP2vYApqC2h8ajMIjpHWFAo4pBZEIVNZhbR6XwaoAAKm8yqyCezIJAOqhtF9ms/gVAoFI/Ho9Ho7OwsQRB/v3w5P79wtvnk4f0cVaWgUVJ5QiSsK+OrKgXNR0RHDxSpKgWnpNXK8tKGg2WNkkpleelOzleWl5pPNDj1py61NnfrNN06jatda9efBgiCBHZYWVnZ3Nx8/+7dq9evtVJZYVqaMHvvkVyWklPIBqCKxqhm5HF3pR2iMSQ5uSXQngN7skpJmbxvv1NyCvkZpB8yIHdT803Thev6NqRFs+2PzRdPNAKXyxWJRMLhsNfrRVH0L4J4Nj+vl8uLSSQeBImZuYe/zy8hZ4oYzP0ZkIBK5UGQtIBdQaWVkDOr6IyjHC7nq11iZm4FlcaHSHyIJGbmXlSp7MdUl1Rqi0q9fcDv9yMI4na7/X4/QRCJp09PyWQsAPIAKMvKLiFnlmVll2VlH2IweRDETk05kJnNTk3JB4AHQRVUWh4A3N1fs3elslNTClJABZUGyxXmujpYrjApFCAQCGAYNjY2hmGY0+l89OjRv1tb59VqDgByNvcQjV6Tl8/PIHFSUupYbByGMas1fME8YoVHrPCw2Rw6Z0oOyWTECt80mfp1ep9O96te/8vpVuD3+3Ecj+4wNjb2Zzz+dGam2wr3mC2IzYbYbL7u7h6zxdbejths9wYGbvt8t32+ewMDX/B+MDgaDI4PDQU8nu0mq9Vqo9GIoqjRaDxz5ozD4QgODvb5fBc6O61dXYPh4Ssez/Gmpp7eXndfn7Wrq91gmH3+/J/Pn1c3NlY3Nj6sr39YX1/79OnD6ury+/dJXy0vr3z8OP3kCcAwLBaLJT+IRqMzMzNLS0udGk2rSNwmlXZIZRqxWCuWnFcoO6SyDqmsTSrViiUGWa1ZWZ9cmRSKNqn0tFhiVtbfsMJBqzVotf7W2XnDYvUYjdtNttvtXq/X7XY7HI6pqanXb94Yjh1jp6YI6DmSfBYnPZ1HpvDIlAp6jjCHUZJFLaJk8siUGi43OdewuZJ8Fvub3cri4utGo6/DkLS/46zHYPgPyplG5tmaWmEAAAAASUVORK5CYII=" nextheight="461" nextwidth="1036" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5594a9e2aefb1afa23a29b3751d631b2.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEwUlEQVR4nJWUe0xTVxzHf38smcuSPaJR/5hGYU5tnNME8UGBdYqWbfUFvohTV4EULLNUwYA86lCYWl6VR2cniK4roF07br3aabHSUVJLjTxWquCM1V1lOlw6erHjXM5ye10dxuzxzcnJzS/3nM/vdX6AEMIYG749K5Uk07Qf4zGMMWfsvn69xaDXnqr/uv6E+RzBBI3/V9B783Zh7dlJCwUAIC5QFdd/Rz0YxBgP++lIYSKweiW4T9AazUE2w50c+8sPTgghBqE/RkdRUM8Ap01WiPoUZgshcjPMEMBHmecuWjHGpouXIVoMS7cCfzvE7IDYlHW7D2LMcPeO0KxCF3EfQQuLHwc43tgCG/NhVRqsTIMVqdOTS9Jle3SnT+YdKAb+VgiPgQVrYE4chAnWSAsYFMAYq9XqsPCwWbNm8Xg8j6ePpunw8PBlSxYvjVwUG83n8XhSqTSEgVqtAbZ+DjHbISIBYndMFx9Kl+3RNzUaWs5DvBSWp8LsOJa0XJJSWMWl7j2RGOa+D/PiJvLX3+gfwBj3ud1r0/Oi0w4tTdp9Rm/o7u4eHBz0+XxcBAQIZSDKgsgt7L56ryw7p6K8rIUgnD03q+p0spzCzFxFUVnNSW3jFetlW7v99Y3ZMD8BFm6AhOyK6lqXy9nc3MSXHX23oC4iu6b3Zn+Hvb26utpoNCKE4FqvR1ygEheotu2vSNp3NKNEfcd7d4SmOX5np/NMc/PphoZGnS4vd7/RaLTZbGkHa9JKtZtyKjNVulr1lyqVSqEonLM5C+aJIG5nd19/o04nl8s1Gg0LCFaCYVAgmF8muJ6m7z5FxQlidkmSRfHCE8fV9ymqrq6uoaHhhyuXPe4eBo1izKjV6vLycrvdPlkohikRwFvZ8E3Tmebm/Px8giDYFCGExoI9N/LkybCfHnkSoGl6aGgIY6ayvglengYT3gKY8tI7Sy60trlcTr1eb7G0thDE4MNfaJomSdJisXi93sWpByBcAPGStg4n11E+ny8UASu3291qsZhMLRdI0u3uG7znFezIgrdXAH8b26bz12xOyThWUa5UliqVSp1Op9ForFar1+ulKMpma4vKrHhDXj019YjjWvffO/UpACF0a2BAticLAF59c9KjoccY4+RDGpgRy3bqzFgQ7iqv113tsF+8dMnhcAQCAc5B7jiDRr+oN8hrDMWnTPd+psa95BDNdI6ED7bDun0QI07OOXpvoG9nXtnkpDyI3vLah5JpG/ZW1Wl9vz1+7h1hjAMB9nF8pdEAgEj08e9+etjvHwdgpw/Gd7x3p27IYrs+YpNSe76t9XuFQlGqVBYXl5zV6zs7nXZ7O0mSVquVIAiSJAmCMBqNDoeDJM/PTcyAResBZsBEHiwQZZeeCA2VZzVgELK7egxmq8lipx48ZBAa9vsDAbbmofFiNptzc3OLioqUSqVCoTh8+LBBr7/qdPEkRyanV8JqOZsA8RG5qgnjMc7vZ4B/EEKIywNFURaLxWazmc1mj8dD0/QITf90+07YJ/kgSIGIRHYJP8tQnnpBBJyJczY0Mv8NzP728NGvM9dKYVkSRCXBKgnwt+3MK3sx4D9G81yRMcY3+m91uLpcXT9e7+1zXOu6Hxz4nP4Ei/J55BNPCBIAAAAASUVORK5CYII=" nextheight="545" nextwidth="1031" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-v-buterins-proposed-scheme-feb-2020">V. Buterin’s Proposed Scheme (Feb 2020)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethereum-magicians.org/t/implementing-account-abstraction-as-part-of-eth1-x/4020"><em><u>https://ethereum-magicians.org/t/implementing-account-abstraction-as-part-of-eth1-x/4020</u></em></a></p><p></p><p>This proposed scheme builds on the concept of account abstraction by introducing a two-step process for transaction validation: lightweight verification and execution. This approach allows for custom account logic while maintaining network efficiency and miner incentives.</p><p>It avoids creating a new account type, relying instead on a unique ENTRY_POINT contract to route transactions and manage gas payments. It does not require major protocol changes and focuses on making advanced features accessible without sacrificing backward compatibility.</p><p>Gas payment is handled by a ney PAYGAS opcode, which deducts gas fees dynamically during transaction execution, locks payment to miners, and ensures unused gas is refunded.</p><p>Several subsequent EIPs draw inspiration from this approach, adopting the concepts of the ENTRY_POINT contract and the PAYGAS opcode.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5e67fc3d2dd9564a1083968a2950e2ff.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE3klEQVR4nHWTXUxTZxjHXy+UbNMx0AJtB1j6AceuLT39OrTHUnrKqac9pbTQpQhSrR8UbDlSoVLGBNbk0MoOAjuuxi41Y3EZWYyJLibzzuliw0RPSJaTkMyL3unC4hKXcOdSuu1u//zy5P8+78WTPO//BdFoNB6P0zSdSqU4jtva2nq28az7uKfZJHP02BBcL4cliNNgduoNGKyzaRBcbyFM5QrbVFbSbCXNWqvK5CjdGjCtygIRQUfyynjyyvj47CigKCqRSNA0nc1mt7a2eJ5/9NOjrj431CZDcL0Jh+V6iRJtRkmTCYe1to/0do2ZMJgJA4LrVSiE9babcBhqUxiwVqhN0aRtUOibEFw3/MmZ2Gzk3HgYJJPJ4eHhbDbLsmw8Hi8UCjs7OyeG+ppNUiKI2bwWzG+1dlkMWKurrxMlTSoUMuFwGay3XQY3EkEM81shk9wfJr/98eaN2+yN2+zVr9PL32Tmrk6D2dnZfD5/69at1dXVfD7/8OHDJz8/CZz0dfhR58cdmN/qDRFE0NHhRYmgw+4/2u5t84YIcgC3+4/iAZujx4oHOlASwfzWYMR//vK5kekzI9NnojNDo3ORoYnTYPhfBYNBiqKKxSLHcWTQJdE1fqgUqlCoQrSnQSVuUIllOon4SF2DStyMyMvb0Nk1Mp2kRn6otlngGSQ+u355In3h0pWxMpPMxbG5GMhkMmtra/l8nuM4nueLxeLm5ma/+1inBrKroS5E1yaX2NUlfwxWtSsVdjXkhFWkSYfIJS6jtl2pcOk1TlhlV0MjPvLi8d7/mOgPxI4HSm/AMEx6Pr29vb2zs/P7q1e/vXjRZ+uAKip0h2otovoj+/e3Vh1sAkAvqIWra2S7BpNIpQBYRPXS3aO6skq5//1kt2/+xGDC05Xs9k16fVPd/nhPbylFLMsyDJNIJFKpFM/zz54/x1tbpQC0Vh1E6sTGGiFSJ9ZUVjcBIAPAKKjTVde0vPNeeZhFVF8eYBTUSQEw1QrHSc9IJx7DnTFHZ8TtBolEIpPJpHbFMAzP848fP3bbzJLKvZBIYJA1aA4LtRKxerdCIoFRflgrEakbhepGoaKu2gLJtBLREbHAIG+U13yAKJqiPZ4hr2vI64p0E+FuEtA0zTBMLpdbWlqiKOrBgwdv374dPD+gQGREP456EJsPNbuNSrTF5kP1na36Tthz0u095Sb6cX0nbPOhWG+7zq4xu43Z28v5H66vfPd5Gfb7xRQ7UxqQy+XWdrW6unrv3t3dmPo9g0Tv6S5ywBk4200O4CiJEEHMFya9IcIfJvFABzng9IZc/jAZOOslB5zBiP9UfCAyGY5MhmMzkdhMZHRuuBTTaDRKEEQoFKJpOhwOBwKBROISGXTtEYAD4r010qpK8T4Z3AgqQINSJNdLhC015X69UtioFoN9AFSCqvp3D4j3ljwA4pbaT68mRuciE/Ox6NQQYBim/MXy+XwulysUCjzPZxbS13Ism11ZWMwsLC4ss0vZ3JcLi+kldvGrmzcWFjPs9S+ecr885dbXn68XNgqFjcJTbn238w+FjcKv/Oadu3dAKpWiKCqVSk1PT1MUdf/+/WKxmM1maZpOz6enklM0PT83O3eNvUZRF6aSUyvLK2MXxliWff36z+3tP/6Ply9fvXnzF8dxfwNbHgKj+71XTQAAAABJRU5ErkJggg==" nextheight="460" nextwidth="1036" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/97e9b13ffed4a01ea4f9f3975768984f.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAAACXBIWXMAAAsTAAALEwEAmpwYAAADkElEQVR4nK2Tb0xbVRjGXw2L+mUZJnYGNTNKBDXGT84/abYxJxYhq2W2CllhKaaZhDICCdwp3LZIxkpBjGtnlho6BqH7Q6UgoWLcLlShE9JmgbGtUBW3Wz0dpVy4Tdv0tj2mbWzK3IxL9sv74Zx773Oec+55XsAJ4hwXxXeDS4JxHN8bmqYtFsv09HSmKj2G5DwSCoXukHk8f9I0HQqFMr/GGN9eWZmbW7h+Y3HJ/avHgzZYlqIouVxOkkqGYRBCLpcLIUTTtNvtZtmNhEFeXj6Px4tlrBKLxp7c/gSP9zgAlJeJM46CR0e/gwxefjF3YMAklUp1Oh3DMNu2ZQOARCJJvbXb7XDphzNk/aualp1nT5NrTODmH8vI6x8ZPHmg+OGPRNlCwRahAEaHTkS4KEIer3fF6fi5vPQhqRgqxFBaBMSRtxzO+dmZmevXFtaYQO8phVb1Rqd695dtuztU+7zoJhj0Tbt2wjt8OFT+ilLZ1vwZ0WMc6GyvVjU8qiWf71a/0FKX1dX+cWeXTqUkJ20/9Rh0rY25rY1PN9fldLQ803q0wHTObLWOjX9v7TH2HT6UXy8HhSyrVgZVZVm/ua+C5Xz7Pj7sL4RjLSXJvdgjXNR28XSNDCT7QSSA6krQf6H4tFlNEE0UNWkd+5ao2fG+AAQFID8IWnWRw3mVpm8tL/++cG3J9I3sqGJrwyc8ooZ3rPkl+pYL7Lbz3Z8XfK0tHLmgwRhHuTDG+NK44WAp7HkT3tsLwkIY7Fcir39x8QZFTY6NXlA17PigGMQlID0A+g7hOhtMxizOBoJ9p8prqxLCSjGQ9U8lDCIc5/X6/0K+YCicvsn5KxOqRn7Fh/llolziyOuXp4bS0RqxDPUZiNrDhVUVe4i64kFTdzLiCYNwOGIyNhlPlPTqJcavhLrjotuIhnTGY9FNrRAORyJcNFXpaCOENBoNqVSbzcNm8/DZc+beM/0+ny+tCobC/rV1htlYXV1nA8FYqg9S/pvbIP6vSoAQoqgJh3MeALY8snVubiHCRTf3UPyOccrg/+Lz+cetwyZj47sFOXt35XS1lY0N6f75RXfnvgziMYwNJ9UG7bNa8jlVA6+TzNYdL1pjAv+huT8DjPHM1Ei//jVCsb268jF9e565T7a6uv5gDFIpmLJZSovhbX4ii6IiIOr4qRQ8kBMkYNmNKw6bc2Zi9peLs5d/XHLNJx/f8w7+BgV0T96vOhtQAAAAAElFTkSuQmCC" nextheight="532" nextwidth="1134" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-erc-2771-jul-2020">ERC-2771 (Jul 2020)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-2771"><em><u>https://eips.ethereum.org/EIPS/eip-2771</u></em></a><br></p><p><em>N.B. ERCs are a subset of EIP. More specifically, ERCs are EIPs that define application level standards - in this case, an interface and behaviour for contracts to enable meta-transactions.</em></p><p>ERC-2771 introduces Forwarders as an onchain and offchain entity used to sponsor transactions. Users can send a free offchain meta-transaction to a dApp’s forwarder, which then sends the tx onchain to the recipient, including the sender’s address in the tx data.</p><p>This allows users to interact with decentralized applications (dApps) without holding Ether for gas fees. This approach simplifies user interactions and enhances accessibility without requiring changes to the Ethereum protocol.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/03d4e5ddacbe90a4a339ef2b1ca9f65e.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE1ElEQVR4nH2TW0zTdxTHf0hxKEgpSC+ryKAX2mKhq/QC/39LLxQoFGmRljtU6l9bRIp/YqFaLuVPOkpWrd3fFNKmZtQmM6tPvvkwo+JCTCRERRZMmFl80rjwYEhGlS20WbIs2b755OR78j3JeTg5AEVRp9Pp9XoxDFtbW9vc3Fx9tmo0t3Kr2MoWGNZJ5bpqaV2logWqkPGkdZXa7nq5rhrSSiCtpPa0QlpXWSHjQVqJTFclVPBF6q/VrTWQVsKVstuthlH3CECTcrlcfr9/c3NzY2PjwU8P+s/1VFRza1vkDUaNvAmSa6vrWlUSVaXGoGzublQ0wSqdXNdeX9sir6guk6pFUrVIohKWCpnyJqiuVS1RneSJS3sHOxxuFExPT9vtdhzHg8Gg3W5fWVnZ3t4Oh8LR6O2b+E33tDscCk9OTOEBHA/ggeuBuW/motHb3wXwWDSWSCT+/A+lohcvXgAMw2Kx2L179+LxeCwWe/jw4eNHj9HxS5OeK46JUcuQ2YWNoc4RxwRqGzmXNKMubNwxMTrpuRKOLUTjt0K3g4vf40s/RsKxxXBs8dYPoZSJxm/N35gDQ0NDNpttYGDAaDTabLatra31l+unOpuOsvPymXlsKZNABWRWPpmZVyQ4ls8k5TOJZXAp/QSNyqVwIFY+k/jFl+DwMQLcLB3zoRcx24hnKAXqHT7nGABerzcWi0UikZWVlbW1tV+3tp4/f96vb1af4Mh5bJjDhDlMKau4USysF/JrythKPlfOYzeKBKpyrpLPrSkrVZVz6ysrGkWCsd4OtKsN7TKOJrncbRo0tQGXy+Xz+bxe74cPHxKJxPt377bevDnToBXkkDiHssqJpHIiiQXS5PTjZdk55URSBTGPAUAVlS4uoHIOZbHT03mHsmF6YRWVPt9nnu/rn+/rd5s6nHrDZOvp4WY9cDgcoVDI7/djGObxeNZfvny2umpSKDiZmdwjOcKjFCmNLiRTTpIpIgqVn0uS0ugiCvUkmcLLyVGWlAjJqQEyP5ckptFYGQRWBkHHKxtu1A5qNJb6hv0FHo/HmRSGYb9sbDxaXtZDEB0AGgCMJExCOudwFvtgBgMA9sEMJiH9OAB0AFgZhMJkWgRAUTKiAHAcgJqiYlutBqlR9NfW7t8gGAwuLS0Fg0Gn03n//v1Pe3tnGrQlAKiLGRIKTU4v5GRmMgDQlDCCgxeuW87eOIvgVitutabMv1rcap3r7Zs2mWY7Oi63tQGPx5NaEIlEgsFgPB5fXl62WyzWNiNqNo8mOW8yWfQG1Gz2X3VdGx//dnzcf9X1P+BTU/jU1MLMzAyK7n+yTqdDEMTn8yEI0tPT43A4rgUCM7OztosXhy9dwhcWJtzuU3r9hNs9hWEXRkbMCPLq9etPe3s7u7s7u7t/fP78T3Z2d3//+PH99vZOIvHz06fA7/ffuXNn6W89efJk/dUri97QJpGaILhbJjOIxSYINms0vUplOwy3w7AJ2q9mlbodhg1icWqmWyYzq9QmCEYaGmYRBEMQ7/nzY319+5+MIIjT6URR1Gaz3b1797e3b9tVajoApdnZggIyHYDiJFwiiZeby87KYhxIK0kD/KMFjANpnCNHSrOzS9KAoIAsKCAzDqRBhV9NdnZOdnZOdXU5urr+AiDtGAQQjjVPAAAAAElFTkSuQmCC" nextheight="460" nextwidth="1037" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f4f8ee15fb77ec81298e71d02a6a91af.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD8UlEQVR4nI1TbUxTVxh+44+Z7Ic/mrAx0tGo6My2+gHhQ9umZRtThw6nUGDIpKjVbrNxziHFUDs6e6EMZAKp7G7D8lnbgdLWFsaASnDtSCxcZlgjDLBmi8FdZ5cKp9zCWdoysmxm25Pz6zzPOc953/c5EEAIY3xSfiJu3doH939ZDDIRBBDibt6ycdOmZ6KfO1QgwRgzDIPC4tKzJSIBPy9HXFqiQCiAMe4ymyUSiUp5tvZCpVZbQZJkRI8xBmr8Du/IOWAnALBXi3Jln+hwGNT4HdiRBdw98OIu1qv5c/Pzkf37vz6MTnkD4lKAFcdLz1kWU6NpO3ev4rwMa2K5CUnlhCayHzKw9d0E4VFYK4It+4AtiN4r67XbbDZrdd3nsPs9iN8P8VmQ+o7RZGpqarZZLYqPy4EjgqgEiBWK3lXbujqs122U292gb9twsgYK1KY+Z2DuscFwxeFwMAwD5p4ByFNBSi4kiiEx56XsU3UXa6wWS3f/IHB4ELUVWJtho8hoMhEEYTWbLd/0xx5UPrX3fcj4QKr5srqyQnpM1t/3ra6xBTgCYG0rOn9x0NFfrFBotVqfzwfWvkEQl4aeGZMC2ws2iE9dqq8tJzSX276G9BMgOAQCCaQd/u2R78+il+56vVPTM5OTP9E07XA4mltaXM7v6kh9qJ9RCQ2mbu/0pFQqJUkyVMH3I2PbDpetyy0GfjbrwId5igtTkxMj7lsdlh7gHYSYZODwgZ/tvXcPoXmEkN/vRwgFwsvv9/t8Ppqm5x77679qhl1ySHi70dwfZJDT6aIoCiEEGONwchYwXgqgeYZZYJhFjHE9qYc3i0B4DDLOrD+iGaXGdDqdUqksU6sJgtBqtQRB6HQ6g8Hg8XgmJiaocU+Z3l54nrzhGglHaHF5yPgfCKd04arZXNVsrbnSK5arXs8qHKPcM9NTt8eo4eFht9tNhREJNMbY7/dXV2rbLpMILYdthXqCQYS+OTRksvQ0Gq6m7dkPAKtYMQ3tXU3Xeh7QD1fOh3s1P+S6dZqoB2ABrJara43XB0JdWYnpE2/HGNtsNth5HPiF8MpRyCyGdDnsyAeB5CNVueVaZ3t7e2trq9FkGroxcLxEA8n54RxmAfctQaHifxl4PB5IyoKY7cBJhegkYPOAIwSOUFZ0rqqyoqqqSqVSkeQXP/4weslkhwMK4OVDcg7sK8o4rcV48d8MIhxN07lnPn3+tdz1aXmxqWK2MJMtzBQWlrjct3/3PZqdnaVp+q7XywTmPmvqhDVcePqF0Kd5NjE+U/YfQ15BkEEYLwUZxAQCQQaFwhZAi8Hg32Qz3p/1HXaj3dFm7tV3djvdY39l/wDGvjNVgnLTNgAAAABJRU5ErkJggg==" nextheight="474" nextwidth="1133" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-2938-sep-2020">EIP-2938 (Sep 2020)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-2938"><em><u>https://eips.ethereum.org/EIPS/eip-2938</u></em></a></p><p></p><p>EIP-2938 proposes integrating account abstraction directly into the Ethereum protocol, allowing smart contracts to function as top-level accounts capable of initiating transactions and paying fees. Users can use these smart contracts, known as Smart Contract Wallets, in place of their EOAs.</p><p>Gas payments are handled by a new PAYGAS opcode, which deducts gas fees dynamically during transaction execution, locks payment to miners, and ensures unused gas is refunded.</p><p>This enables features like multisigs, social recovery, time locks, and quantum-resistant signing schemes, while maintaining miner incentives and network security.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/77d1fc8be794b6f74efd173791d7bd36.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEx0lEQVR4nIWTX2xSZxjGT2/m2q7VOa20UDjlP4VSCwgHzmnhQDn0FDiH/7ZiKdVuVAT19HQySIlMa0iOYwbLSrSKIVkzMuOcSWP0zotqt140ounSrIle9Ga6Ky9mvJjJUnCLd3vyy5cn35e8b9483wtQFEXTNMMwc3Nz1Wp1c3PzyfoT71FCbpDY/GYY18og0YBD3++AYFwLYZoBhx4lERjXoiQCYRrMj6Ikoh3sq79CmEZtUhIhfDZ3dvby2cQFCqBpOp1OMwyzuLj44sWLra2tlZVH3pC7D5WjJGwk9ApYojErzZ6dor398r4BOYSp6yhgqZGEdZhKBokOGhVyg0QGiRSwFCXh05kT0xdjseQUkE6no9FosVgsFAo0Ta+trb35683RqSNyg3hoZNBIwpgfNXv6NZbeqeTxpfs3y8tXb9xdqFNevnb95+9u3F1Yun+9vHy1vHytvHztxt2FxZ8K899fKvyQu1jIANlstlKp3KmpUqmsrKysrq4GIyPOsSH3hMM5NjQa9fomCXvQFoz6p5LHI8lj1NfRWDoSTU1+kQifzpyIJCaO0WPxzInTH0BdiL2fIF5TNBoNhUI0TW9vbz97+swTIiV6Edjb2WdWfsptFmq6BCpQrBV0yFigkiM3SKQ6kUDFU1sPClS8DhmLJd7vHMPPL6ST39Cpy2frpK8kZs5TAMMwlUqlVCqtr69vbGxsb29Xq0/DpAPrlWMqhQvWDshEmEqBqRROSG3te2/q9y5Ya1F2OyE1rlHimoPUiDc5PvofqfARKjS6k0E+n8/lcq9fv3779u2fr149f/58HLNp9u6H2Z0WvlD9WZu+nSP56GMjlw+zO+WtuxE2d1gik+7aZeELpY2NCJurbWNp9h3IBA4z4+FZj++cP3DOHzgfGEkcHgUSiUSpVCoWi5lMhmGY3zY2nlSrDs0heXMrwuaauHwTl4/y+IZ2jqypUdG6x9Il6K9VNLRz5K27bUKxicvXt3MsfKGsqcXCF35Feqih4WncTtnwOOECUqlUfQkymUwul9vc3Hz0+LHTiAj3Nnd3tOlEoApkHxJw62d3Rxsk6lKB7B4Oq4fDkrH2GeViFciWdxzQiUDx/j39UuH0qO+k1xnzEnEfMeX37GRQKBTK5XL9mz58+PDd3+8mzoRVWK/rcwILDmJBq8k/oMb6hsZsBlJvIPW+qDcQ97sjpIHUW4ODeMimd+hQP3p9uXjz/mL+x2/nb1+Zv32lcGf+YnFup0GpVLp161alUllaWrp3796va2t+wjao63FbEQxReTAER9QWXc9wv5o0G9xWxG1FUK0CR9RuKxywoyN2M46oPRgyddR9ctwbD/vrnAr7Tk6MAhRF2e32yclJhmEikUgwGJxNpwkdBACAqKFB1NDAqpnu5hYQAPgAIGtqEQJAKwB0AkBbzYA18wkAoDz+rMdH251fOmoMO065PUA+n1/6V6VS6ZfV1d+3tg6jJnMXH5dKXT1Km1hil3VbhSJcLHXIFSaQH1CrU24PbXdQw/YZJzHjJGinc8ZJJFyuD0m6Xadc7p1Npmk6m82m0+lpinrw4MEfL18eIwhxSwvEA40iEcQDYbBL3cHW88ChHqWgqdGt1RXOnLkci/0P0Vg2Hv8H07vlbq8D5jgAAAAASUVORK5CYII=" nextheight="459" nextwidth="1037" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/12d912b1ee4216540c9ad0c04542b77d.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEjUlEQVR4nI1Uf0wTdxR/WZzGZShmmfsD48wkY7gFnYpU7NBu4GDDQVDqxEEHg0rhDgr26oFAS2H4Y7qYgNnwGMLqygYpA5mJ1EBYk6Ic4RbMKInKZZRxwDHPH3Wt9Ou45Tx0LNuSffJy38vLe+/zfe993wNxEXyLgBCSf8QnQCiAUMDn8z1CSPxPzMtxHA6H0+lECIH4/4D+JagUSwbP84Ig8Dwvm3Ecp9PpCILgOE4ikLUMw6x9+ZVopSpaqdq8RRG5Tbli5QshISEsy4qiODt7ByQ8AwBfW7/1zQXu3v/9qW9ExOsAsHbtGgB4afVqiqK0Wi1Jkj6f7y+CIWZ4547QeNVzcTFByqilcTHL4lTrWlpaEQr4/XMt542fW3ZlHli/fSscr4jt6ypov3Bk3DPJ89M3b/5C1WmxzFXJCc/mZgQbsU1Op5NhGJqmJQKO42w2W2NjQ0Oj9VhForUuvLQw2Ji/tLV+Y3WJwlJVYzKZ6s9Rpfo3CB2Q2PIyfRCJLSvKgZLCMF1eQVVVZbPVdqIyIX0vpKdCWjKUF78aCPifVg9omi4rKysq0peWVWLZCo0aUhMlSd8HeHZ4jlZnJIj6c1QLlfZhEii3wi4FxCgkgy9PxWd9cshgKB6+PnKycs9bkZJ+6wb4WL1KJpALI2VgNpsNhmIDUao5sDElAaI3S/LBbsCzN0xy06Io3rvvLSncpD0o6Xcp4B0lZOwDIxY+ODg8NnZrdPTWmZoULBPiYuCjvWDMD3W7R9xut9frlQgQQizLjrpHhpifczOjUhJAGSmJOhG06aED9JDHM86y7GfHjHhuEq5LKcJSCX2aHkuxmPCJCc7jGeemZsnC6NgdsDtGckyKh6IivU6X5/GMSwRP3tnMGPurqeT9qAjJSLVDumxS/KocrQ7HMY1Gc9hgJMlyA1FSVl55hDxqIEpMZguO4yR5ZHCQoerwmtItOenrztftOXsq9eaNGxzHLfRAPjhukpu63Vxf8N7bUn0TVJAcD9WlqmarzWb7pra21uFw8PwMx00u+nIej0cQBFEUvd4H9+57bwt3TeZqW0vb4qFZIBAEob29/Yrjcnd3R3d3x3e2hg67taOjrb//qtPppGmaYRiEkCAIM9OzM/xvU1PTchSE0EO/1NIpbuKivX4JQHjYi532L9gxtzyMT0vE9/T0vBa2HgC+b7f/c3R9j3eGwVD8eNwgeMWSiYkJ2QyhgCiKjh+ovAzQ5zyvUUPOQWhpqnjs92iBwO+fMx/N06ilR6LL3DZ8fWRgoJ9hhuR5YRjG5XIN0EzTVyexzOWpiXDm0+QhZtjp7Ovt7b3i6P7RebWpwdJKbT+cu7IgO8haF9HZVoPm5xcykC9rbTyRkgDv7oS9iWvKyy0mk4kgCLPZTJIkQRAUVe/qpy/aKXUSbH8TCExx6FD+/v3qrKwsHMeqqo/XWPJjldIcxCggVgl1p/G/ZSCK4h2Bv3LpfKf97A037fc/XLxZ5eUqiuID770B1+Ueh1161cxPNE339vayLPvH/LzHw/b12K+5uq65uhyXLrBjo3KT/wTpKKWeDR4XNAAAAABJRU5ErkJggg==" nextheight="560" nextwidth="1195" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-3074-oct-2020">EIP-3074 (Oct 2020)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-3074"><em><u>https://eips.ethereum.org/EIPS/eip-3074</u></em></a></p><p><br>EIP-3074 introduces two new EVM opcodes, AUTH and AUTHCALL, enabling externally owned accounts (EOAs) to delegate transaction control to smart contracts called Invokers. This allows EOAs to execute complex operations and batch transactions without deploying individual smart contracts, enhancing functionality and user experience.</p><p>Invokers can batch multiple operations into a single transaction, sponsor gas fees, allowing users to interact without holding ETH. This reduces the technical and financial burden on users, as Invokers can handle batch transactions, gas sponsorship, conditional execution, atomic operations, cross-contract interactions…</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4192d9573dccadbac5a89ae12e5a4b86.png" blurdataurl="data:image/png;base64,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" nextheight="555" nextwidth="1040" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8e12b2d5b5de449a53d1d25b8f15aff3.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEQ0lEQVR4nG1Ue0yTVxT/JSZLXLZk+8NhEJyCj20MxCrgpC0PsaDQ0Nq1YMZrIGuxIEMofQwFK9qt2A2VFBXFCEIVBiX4WAiCZtaoZessG06TObQN3axWrX6ETwrc5aObumUnJzf3nnvP+Z1z7+9cEDLz1Pt4NSuy45SJEOLzTfp8PkLIyZYTixYGpfB4P9mGZu2McWTkl5B3g99btjR2TfTo6O9+u1Ao1Kgqpfm55WVlKrWaoij/Yb+g2dz/eqwQAIIjk4tqfrgx8pyeGB29yytQYUE45i0Xl9VSFEXTNCEzR052ByRlLeNveSdO8v01GyEzXq9XUVGxnJuGyCR2cnp3V+er0RmAEv1xLIwHOwdLeGDnyMvVTYcPmUwmrBIgcC2jK/nf1Nfr9XVnerozizUI5SHwIyxNUWj3HTtsbGtrvzkyEpqlAV+hNJ6mx71nz523WCwvYKDYfxIrRIiSYG0WuLl5spL6rw1HmpoChKVYIQBL9FZK4XWr1WazTYxTZy9aWTmq0I35XNnuA4eatbtqzGYzTU8gRoC5YYKtVZbB/uqaGr1e7/V6/waobDAhQoT5qxESj4R86baKLzSqqh0752UqEcYHS/x2evEziiKE0DTtdt//wzXm8Tx89Mhjt9v7+voGBgY8Hs98fhEWr/u8rtl178728vLGxsaXV1SxvxXZWqwrhFCxoEAnL1N1nDL19p6J2VKNaBG4WezC6sdPmHTs9mGNRlOt3bVn717t7t06na6zs9Nutz9w3w+RKMCVbq87PuWjf7112+l00jTt800zAHk76oFFCGYjiI3ANRcsVkKYjR6zOTU1VSwWDw1Z/blYrVaXy/XU633gdnsYefjkyWO32+10Oq8MDfcMXr115x4hhKIop9PxnCHFbAUd5wY5GbINeWXxmUWFap1ceyBCVLRKUjwnPIGhFjAnPCE6oyRMIPtMrbvncDj/dIs3fwJAViR3jLkczrFXOfOMGm81dQDgCz6+decuRVF4sTfpmyKE8LfXIbkUAiUSpYgrwPqtSJQxy3Tlm4lZ74u3IVkK9mZE8sHNRlJh7JadAwP9FsuVwUuXfrt9M2NbNcOXlWmITEN4Wr/FCp9venK2u8YnmKJSimrAEiOhAJxchlcxmcwYmw1O/hscMT7YgCAOQ+vAtViciKA4rEyrra39Uqfbs1dnu35VaTyN9ErGd50UPLm53/KyAv+bbFLsQ4QQH6aCtYnRmM0MBkuIqMyoHKXGcDS/5qBIXhW1USIp3ZWtNmiNra0tJxoaGr7S1/1848e8HfuBULy2DAFRmBvWce7ifwEyqhqQuBWxuYgQYCEHIQlYkgTOp1hfsqHcMD31ry79x5ERapbK3126VrrHqDYcUxmOVuqPjDpcLwGY8IRcHhpu+rav/fzlxvZeY5v5YEvXwZau1jMXj5ovDF5l/gb/fdL0c/9kcrZj/b7/K38Br9zZt4WSdPQAAAAASUVORK5CYII=" nextheight="486" nextwidth="1197" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-4337-2021">EIP-4337 (2021)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-4337"><em><u>https://eips.ethereum.org/EIPS/eip-4337</u></em></a></p><p></p><p>EIP-4337 is one of the strongest approach to date to introduce AA without many of the drawbacks. It does not require consensus-layer changes, instead introducing a higher-layer pseudo-transaction object called a UserOperation, which replaces the traditional transaction format.</p><p>Users no longer need an EOA. Instead, they manage a Smart Contract Wallet, through which they submit UserOperations to a separate mempool, distinct from regular Ethereum transactions. Any block builder can take on the role of a Bundler, a specialized aggregator that collects UserOperations and packages them into a single transaction.</p><p>The bundled transaction is sent to a singleton EntryPoint contract, which validates UserOperations, executes their logic, and manages gas payments. Gas fees can be sponsored by a Paymaster smart contract or paid directly by the user’s wallet contract, with both reimbursing the Bundler.</p><p>To mitigate the risk of malicious Paymasters causing DoS, a reputation system ensures only reliable actors are prioritized. “To prevent attackers from cheaply clogging the mempool, nodes in the P2P network need to check if an operation will pay a fee before they are willing to forward it.”</p><p>The official EntryPoint contract for EIP-4337 was deployed on the Ethereum mainnet on March 1, 2023, by a consortium of Ethereum developers and contributors, including members of the Ethereum Foundation and the broader AA community. GitHub repo:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/eth-infinitism/account-abstraction"><em><u>https://github.com/eth-infinitism/account-abstraction</u></em></a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1fd99a7b012b0259bce6e6cc1ebba7cb.png" blurdataurl="data:image/png;base64,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" nextheight="523" nextwidth="1036" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a412d92ca440f97008d844ef5a753b5d.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAAsTAAALEwEAmpwYAAADw0lEQVR4nJWUfUxTVxjG3yxbjFuyj4zMEaJbMsqXSBlSoazbCFlL41QmYl11022OUoU4V0NFkqEsQtFLhyi2lrJWRuE6RQJXiytflkq3fgwaAkpCh96Mrleou8igS5cWzlKadY5lZvxy/jo55zzned8nLyCEfD4fQqix8aIcO6VWnZdjMm3DhaIDBSUlJbOzswghm9VaU3266RvtDE3jOK5bgiRJhJDf70ePBRBCgcACQkj+VQ28FA3PvQoQAavWPv0aU6lUhAT4uwsAAFZFnjyjkhZLNBqtXq+vrZG36Jqutl6eoWmEEEVRer3ebvvB8r3ZbDbTS5tBAZIkcRz/9tKl2vOqJwSlkHUAssSQWbD+05NXrwSxWa2QtgMY2RC7OU1QaBkwBgILc/O/r03c9EI088XopMHhUYSQwzHEzuDEpr4VncQSCAQTExMhfzAyMlJcXHz4s0NHjpbGi2SQ+TEkbQGeOE0sk0ql5eXlzvHxyG0HYd2bsCEndUeBWlFHEES9VgfpQmDmAmdf2alzeLPObrM0dxjgExlbctblphyOIbPZHBTwer1tbW0E0a5twoEnhqg3YHUcMLKf3VqIYZharZ6haYZQCgwusN7fV1ZnNvba7fYx5wQr/8QreZ+zRBVfVFRLpVJjb891owWiMuDtPcT1G0qlAsMwmqaDPQjxcHZOKJUn5IhieHuSdxbuP15bjWE6ne6Bx/M8fz8weLDhvTxJ5cjQj7fvBDHf6u/t6jL2dvf2dF8jrt0y9qnxdmDwnuKLXG5KrVZrNBqfz/e3wDL8fj9FUaFeASsHVsfDmtTXt31UrzjX1d0Tzg9JkplZ3ISkZA6Hc6HxMuwqSxPLpqY909NTLpcrWKJHHw0EFvxLBAILoWiFsAyOdhhuGkyWmwMWg6GzrfXKz+Q9krznHLsz5vzp5XfzIUMIbEGnyTp+d3J4zPlodv/TQeiP/n/G/IHHU6f6Gp6JSEhJZySmADx5+mw9xHNhzUaISGm90R92Fr77OIFlzhYR8tx380XHIH03sHfBpp2wMY+99yhkfgDJuRC3ubPfVlXx5RGJxOud/18OlrGIUMD/x94TSkjYAnHZEMeH2OythyuHhm/jHd8ZjAOWwVGITASIGrA5wlZWLJBfqQGWEGK4wcXMfUd8vOWipqW5ubFBVVXXAMztkCokjJbwgFiZAEKLH5bKgwWJ4cI6NiRvZwuKDhUdrJRVEUQ7OUmVKfBjZ5om3VN/nV+JQIjf5r1Tvz4kf7nvvEt6ZuZcbspkMvX19YVm37/5E9Lgs1l4cMj+AAAAAElFTkSuQmCC" nextheight="582" nextwidth="1319" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-rip-7560-2023">RIP-7560 (2023)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7560.md"><em><u>https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7560.md</u></em></a></p><p><br>A Rollup Improvement Proposal (RIP) is a type of proposal that focuses on improving Ethereum’s rollup technologies, addressing changes that may impact both the execution and consensus layers. Unlike EIPs, which encompass a broader range of updates—including networking protocols and application-level standards—RIPs are specifically targeted at standardizing and documenting advancements in Layer 2 scaling solutions like rollups.</p><p>RIP-7560 integrates EIP-4337-like functionality into the protocol itself, rather than directly using EIP-4337’s application-layer implementations, which is why it is referred to as Native AA.</p><p><br>RIP-7560 makes several arguments for Native AA over EIP-4337:</p><ul><li><p>UserOperations require twice the gas overhead as basic transactions (42k vs 21k)</p></li><li><p>crLists and other censorship resistance techniques address transactions but not UserOperations</p></li><li><p>UserOperations rely on a separate mempool and a subset of block builders. They also rely on non-standard RPC methods like eth_sendRawTransactionConditional. This significantly smaller set of participating nodes and their reliance on different RPC methods decreases reliability.</p></li></ul><ul><li><p>Tx.origin is no longer useful, since using it on a bundled transaction would return the meaningless address of the bundler.</p></li></ul><p>Specifically, RIP-7560 proposes similar execution-layer changes as first introduced by EIP-2938, involving splitting the Ethereum transaction scope into multiple steps (validations, execution and post-transaction logic), thereby eliminating the need for EOAs entirely. It does so while attempting to maintain backward-compatibility with the year and a half of ecosystem adoption of EIP-4337 concepts, such as UserOperations, Bundlers and the Entry Point contract.</p><p><br>The new transaction type adopted is that first described by EIP-2718 (not described in this paper), called AA transaction. The transaction receipt object is also changed to accommodate AA concepts such as paymasters and the multiple phases of the transaction.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c02f0ab7a2c74b57f7df7f6822efe3c8.png" blurdataurl="data:image/png;base64,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" nextheight="524" nextwidth="1040" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d01b4fdb597e721405509cb6c771df15.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEUklEQVR4nF1TbUxbZRQ+i5nJZlzi1CHJHDNsblSYGRCHo0CAjY8I+BGgILe0UCgtBYQbKINsFMooo80URqGQC+1oCYs1gNyRMrzACKkUvQHvsGZA0mRoSKCGJrtzjVrlNbdVtvj8ePN+P+c55zyAEPL5fAihra0tpbLeYBhQqVrVre09vUROjgDDMKfTifyoqKjKzhHk5Qu/oajAK5/P5/V6EUJCofjMmYik5LSk5PSk5DS73c4wjMPh8Hq9sE/AMKsvHYajhyCAA/6Rz+d/t7TEndLTkRGHT4Vwm/nZUffvdd6b0LMsi9AeQqgez4uPAWnh2bTEQ8lxr87OzcpkMgzDXC4XsCw7Pj5utVpvdRs6rpdYiQt18iNy0QFjZ0R3e9yS41u73W79akKUe0rffrxPd26wM+rzllBcCqXYEaORsFqtRtPwtbqUft1bvTfOmrreMehizObbJSWlCoXC7XbD1taWRCL5ND9fKqvEK7NKMUiJh/RE+DAF8j96MSszQyKRaHVdel1+VgokxUJqAnfh43Solb8tEGSLRCKKmm+q+yAsGHgn4fTrkBgLIyPDLpeLpmmWZcHr9TIMYzQOarVfNF0pyEqBc6chMgz40ZCZCnNzMxvr63Y7rddl41K4eJ7jToiB4jxoawjXadvN5iFycvrmdUFlMdTKj+LSg9LCVxyOxf3MczXwL/546v3d2FevEHMBJsVCYTaUFR57wKyw7OMdt8fU39jRfKmxJq6xht9Yw2+/dqmjJdfp/HFnZ/vRz9vdOkwugiIBiAXQUBkixApqcJxhmH8JAlSOpZWrdblx0VyYKfGcguhwEIuFMplcxqG8TFaBYWKRWKKsv6pWa9RqjUqlUqtbWtt0bapPyKEEiz5ucjj1SyKTIPqnp6b8LfCfAoQQTa/cHe25HA/8C1weI3mAy99rVTcrFIrGxgYcx5uammqqqxWKcp1WO2yxDBCE2WwmSRIhtPlog3ZQ3zvuD93umSStgYgDeKZAo9FYLBaKmrFYLFqtbnZmjmWfMAxDURRN0w4/aJre3Nx0uVwb6+uUH3a7ff+H3d1f3wh6LTj4mHvnl9/Yx/8nGB0b4/HCAaC8vMLpdDIM83wgPv+cIAgAOHHizaCgoIABA3ZDCC0ukKUFL6cnQuJFyMkCQ1cNQugvn+8Zwddjd8JCOR8JBZHOn9YcjkWKokiSHB8fJ0mSoiiGWR0y9b4fBbHRUFzAs01Ra2sPGQ4/LC+vmgZujBhiqiQHiwSgbwu9Y6r7e28Pob3nFFgHk2O5/svOeCEnp6CsTCoWiyV+KBQKjaZteZlZoef40fBuKHxWGoIJi0QikUQiKSuT1tZeUeKFGZeBdxzCT0LsedC25PkV/BkoMmd3z+62ZaBumKi6O3qTJCcpirLZbE6nk2VZj8fjdrufer1PWA+hV7Y1F9om+ufnF2w2G0mSgVytPXxg6lMaOqsIPT6gr16Y44qP0N4/kxzTtYjqNlAAAAAASUVORK5CYII=" nextheight="502" nextwidth="1199" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-7701-may-2024">EIP-7701 (May 2024)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-7701"><em><u>https://eips.ethereum.org/EIPS/eip-7701</u></em></a></p><p></p><p>EIP-7701 looks at RIP-7560 and proposes adopting the EVM Object Format (EOF) to distinguish between validation and execution code sections. The EOF, first defined in EIP-3540, is a structured framework for organizing smart contract bytecode, separating code, data, and metadata to improve modularity, validation, and execution efficiency within the EVM.</p><p>This approach introduces multiple entry points within smart contracts, each designated for specific roles such as sender validation, paymaster validation, and deployment. By embedding these roles into the contract's structure, EIP-7701 aims to enhance transaction validation efficiency and security, reducing reliance on external encoding schemes and improving compatibility with various account abstraction mechanisms.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a22ed476e8972ffb2afed9b179985062.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAVCAIAAACor3u9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAHRUlEQVR4nD2Va1Ba6RnHTzttt5vUjRcSkUUh3BE8IB4uAkcEuRw4eBAEL4DIxSsJRHQNZhsiuhiVDbEkbrIZHRImNTVxHXZsJzO2k4njl8za1o6dZeuHTb84k+44ywfbdCcbd9cO2M1v/h+e+c8788z7XN4XiEQiiURifn4+Ho+vr69vbDxdW/u9q8/R7EQwp8F5rgPt1GJOQ+eADXMaWr2mVq+prdds7ja2dBsxp8HqNZm7ja1eE9qZP69qabB5Wy6M+8//eiBwZdAbdAPxeDwSiSSTyaWlpcPDw6Ojo2/++01P0F1SdaKcVkYGieW0MuAkQGTjiWw8XUjFUYpJXAKRjcczTlMFJByl+BTxLY6U2dbf0tyFyI0SZ6Bt6U937/7hzu+e3Ju+NQGsra0dHh7uF9jb2/viH19sbmw6etvV1gaRupYrY0m0dTyYLWziw0aJvCBBY41YK5DpRbBRItOLuDIW5tLPpWcn5y9fTlwciw9fiA7mNen3DrmASCTS39+fKBAOh7e2tv7z75eBsUE6REE61Ei7SmWBtTal0iRDHVqFSQY18eRGiQKrl+qFqEPLlbGMTp3CJGMKqZhLf/3e9LXU1PV709fvTSfvz4anhvMlSqVSKysry8vLCwsLT548+cuf/+o516W2NmBug65dhdg1mEuP2DXH+bQ2JdKhwVwI5kJafZjCJLP2YKhDq7LA7f3msfjw6NVgeHb44vTQ6NWgd6g7f4N4PB4Oh4+Dg4ODr/71lS/QzZEzpHohD+ZobA18BVeqF7IldKiJB8JshUmmMMmIbDwP5kj1QpqAzBLToCa+RAuxxDQezKbwKtkSemC8L3JtDMhkMru7u9vb29lsdnd3t5Bg33OuCygC2BI6D+awxLQKxhmagFxZXUHiEphCagXjDI5SgqMUE9l4qV54iniSKiCXEE/QBOTj/hOY5WwJPXbryvszo/kEuVxub29vd3d3p8DmxqYv2I25DWYPausxKU0ypEONOrRam7JQGT3mQlQW2OxBMZcedehQhzZfww61ygKjDq3ZgyIdarPH+P8mTxdIJpMHBwdHBV5/+9pzrquEXHSS8DO+gstvrFFZYLW1QYaKEbtGbW1A7BoJAqkssN6uVZrl2jalrl0lQyVCrUCCCJVmuQyVdPqtv/3j3amPJoDl5eVsNru1tbW/v5/L5b7Off38+T/7Ah7YIBI1gs5BW/rT2wuPbtx+MHf7wdydh8nFT+ZvP5hLrc4fmwuPbrwJUqvzdx4mj53E4tTMx+MjV84DqVQqm80+e/Zso8DOzs6zzz6zKBrE7xI0LJaKQa8pK+OWlYrfJcrPksEyHPUnAEQg1J4pp/3y59WlJWAZjlFUBBEIYBmO+U4R/e1fMIpO8HC4XrX6PIJ0a9RALBZLpVLT09OxWCyRSBwdHb06PPTqDQAAEADgHQDAA8BPAeAsAFQUpKMyBxpVNlBgAwW9sMIpFJs5PDskbqutc0vlBjrLzOF5ZfDNvsGFwIWY1wssLS29maKdnZ1sNvvk6VOnCdUJQZWAoxJwUCmkE9dqhKCcy8Bg8SWfc6ygy33d44PeyKBnfNB7HBdM95VB95jPGei0DLQau5oRIBqNjoyMxGKxcDjc3t6eyWS+/+57X9AjNUBkkKhokSrNcpGuTqgVyFBxrQok8SuZ9XS+gsuRs3DUEiKngsQnVoFESh2ZIaaVM07ToLO1qppaFTiT+uDK9feBjY2NV69eHXf4xYsXuVzu9beve4JuMkjkylglxBNMIZXCqzx+7CqrK8LTobn0zOzi5Ozi5OXExZmF6PhvxmYWJmYWJq6lpmYWJmYXJ4/jj1dv5hctmUyurKxkMpnHjx9nCjx6+Mh73tXiNRidOluPqdWHtfows8do6zFhLn2n3+oasntHulxD9r6wu9Nvbes3u4bsnX6rw2/r9FvbB1rdIUdLNzpwyZd/KhKJRCgUikaj6XT6eCdWP1kNjA3iqMVvlQMcOYsjZRLYeKqAxFdw8QxcKelXlNoqEGaXVJ3EM07jKMUcKVOoqYWxehirL6yLxNClI/MqL0z6ry1eBdbX1/OT8yMvX758/uXz3oC7WkSrhqgwIm7CZKJGUNQI8iRMUSNYB3MgmAsjIr6ECcFcUMJ4L+q/df/D64tT8/dnb9ydeaPZO9HApf78mEaj0XiBaDT6aSbz988/79ColXQqygfNojp9DUdTzWpiM8VVRE01q55UKaioQPngG6eRTmOWnIIIBIhAqCdVSckkiECQkKpsQshvNuUXLZ1OLxVIp9N/297+7ocfHKomAADKAOAEkKcSACwcUFpBaAV5StJZXnGpHRKqyVSo9LSFA+qodEsNzw4JtRRaM4vdzKpG6AwdjRFUa8adXfkfbW9v78sfyWazG5ubvTabpqYGk9TrBAI1j99SXz83PJwcHf0weCERCt0MX4wHg/mg4MwNDydCoXgwmBwdTYRCiVAo+d7I3PDwzLnzYz7f/wC+vRAQFNzA8wAAAABJRU5ErkJggg==" nextheight="676" nextwidth="1039" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fb69b65d32ac5f71e0f3e06317f34440.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEcElEQVR4nF2TbUxTZxTHD46YLJnL2CZsMJ2iMZBBMzVoi8pEzTQbkWVGSmCFTaDjIh19sdDy0gIXBF8AeRkgzWw3od0qFLjizVr0KpdRtMp1EBEl806bCEtZbpxdrpsXe5e2Brf9PjxfnnOe//mfcx7geZ7jOJ7nSfJKRqZEo9UhBXKNVieVFgpF28RiMcMwPM//8fhxQoIoYUvih3s/crluLGUFz7DXV4KfEACIilrldDptATiOg6WgHos1ciVsjIM1EfDWK7B+FWwSRGi15X96vTzPozqJIBbe2wCRKyBHsrmmbH9HS0kg9+kzn6/lmKSrYfc3zSmN1aK2k2KKulnup2xubg7cbrfNZrNYzE2n2ltP7Dc0rderIurL1rTVry1Xbqdu3u7r6zObzcWHVzdXrz6CLM+XgDwPNIVQptxUUVGFolVmyzlVwftFuVBd/HapLFRfHI9hgzKZDEVRvwOv16tWqxEEyUfkVSVJpmaBtii8XB75XYvgy6zYQzmIWJxmMppO1XygRlZkp8H2BMjLDNUUvlZVkpSdnZOZmXHNRZUrd2wVwE4hCAWQeeCNiYnrd+7epSiKZVlgGIaiqMnJn08bTHmSmIMpIDkA6amQLAIlkuBZePTb/DxN08WF76bsgqStkLIbkrZAxiegzI+bnJoeJUcmp2bqdXt18lf1qncqVeHqw7Fu9wOWZYOd988gCMN4NUWJO4WQJPTXsiMBNEXbAjeLT578daH/pKlTVlV6sEYn1ir3dzXnne879cznC86g7ViKNBOy0yAvA/SqeARBFArF7Ozsc4GAlM+z8KijIbVBH9Zcve6EbnWDPqyyOLG940xXV6fBYGhsajtj7O4yGEdI5zUXheMXLxGXCYJwua7+zXHGtqwB0x6b8WMSSx84e8jhcFAU9T8Hvmc+31BvbZ/pM3vv4ZEhpaM3H+8/Pjf/u9v9wO3nwdzcQ5q+x7LsYqCgpfXjeR7Hh6amJilqAkVRDDu/1JUXAizLUhR1j74/M/PLQD92tO54ZWVNY1NLZ0dHa2srhmE4jmMYZrVaCeLylRHyR7vdZrPhOE4QBEmSLpeL454O2iwAsD46auyniwue+f8IMAyD47hAEL889CWn02k2m+vq6lAUrQvgcDg8Hg/P8wiCAMCyZRAdvZam6aAJlmV5nrcPdR1BQkqLViFZL8u+AGt3bfCXPBfwetkSVZZoM6x7EypLJdO3Z8fGxkiSdDgceIDx8fG7s3TjMVVcNMREgvRz0ejo1eHhYZIkLxOXxsZv9BirDQ0xuRmQlxFSXxY+eK7uhcAi95Tn+ZO10rQU/4KmfxqDFHylUMhlMplarVYoFBqNpr39a/rXh4O9jan7YM92QEv3SaWFBQVIYGHk+sraGn1ushBEG2HXNkgWgvG09t8O/BO7NTn+vamst7vikt1itw8TBIHjuMfjYVnW6/UyDMNxi/fpO5Zvj/aY0Ilrw3b7sN1ut1qtNE1z3OKtqes/nD16ob8F62uydtfOTE8EX/4HW/D4/A8lwDkAAAAASUVORK5CYII=" nextheight="500" nextwidth="1191" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h3 id="h-eip-7702-may-2024">EIP-7702 (May 2024)</h3></div><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://eips.ethereum.org/EIPS/eip-7702"><em><u>https://eips.ethereum.org/EIPS/eip-7702</u></em></a></p><p></p><p>EIP-7702 gives EOAs some of the AA benefits: EOAs can use paymasters, i.e. pay gas with tokens or get gas sponsorship.</p><p>The proposal introduces a new transaction type, which includes temporary one-time code. This is executed with the transaction, giving EOA temporary smart contract functionality, like transaction batching and gas sponsorship.</p><p>While EIP-7701 assumes full adoption of smart contract wallets, which can be costly and complex,&nbsp;</p><p>EIP-7702 allows EOAs to temporarily adopt AA features, bridging the gap for users and dApps not yet ready for full smart contract wallet adoption.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a8f5f6af6f3a69d0d99e5184d2e480a0.png" blurdataurl="data:image/png;base64,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" nextheight="554" nextwidth="1040" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/983706751f530670d1c9b24a17b6e5a5.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAESElEQVR4nF2Ue0xbVRzHfzG4qGQvI4oJmWZkw2lcxsPMSccyBmQgDJFXJ4zyKFBoKaXOVrpRHoUBAt0YReQtRVZS4hoZ3NndlsvjDggXJiGXKdnukpnoRAPGu+0iXOIx7Z2Q+Pnr5Jz8ft/f95zf7wBCiHexybKsTJYnVxRJc+TSXIVCoQ45cSogIADDMOQmS5p70O+dkBOnOrt6hCiEEMdxCCGR6DgAeOzwBDc2m40gCIvFwnEcCMEIod+Wfz8uCnrLF44GvnRgH7x3xOPQARCLk2iaRgjZhzvDQvb67YfXd0J0hE+nKauxNnN5+RHPryOE2k2a6otBLfWRVcVB1SVh01NkRYVBLpczDAM8z9tstmvX+trau6vK5c01+3XKXTrlLmPZPmX2zgFrn9lstuNjkuS3Vdlw2eB7qdi7VL1bnQMxEaC/qDUajdaB7zSqiJxUqNB4X1C+qFP6WK29KlWRWq1eXV0FlmW1Wq1EIslXqKSS6G9MgSVF3nKJR2vtu3r1G9KstLi4uEvV9bWGhJhwiAiByJMQGgwfR0JK/AvpkhSxWIw7xhtrMg77QnAQ+PtBVBg48aHFxbsURbEsCxzH0TRtNvdUGKrVylRpCnwYCtHhEBUKp08Cc/8uy/71mFszVsbrlK685xLgTARo8kGT73UTG6Qoil68ZyhJzJNAcYHX5wW7FZleC/Mza2vrf6+tIYSevQHPr69v8J2tlUkxcOQgiILgsK+r2F9/ebC+scHzmyO3LN0tBc0NudXlqYaS5MaajN6OCysrfwhv0GHKy0x2aaclQEnRm9lZ52SyPIqingkI/fDT0oOmBm1OKiTFQnoSJEa7fHxRW2kwVJWVlhbr9H2W66MTM9j3I7hjwo6PO4nbOI5jGDZBzrSbCs0mUXdjqPPbZFvvJ7br/bOzc4L2dhdhmB23W+vKT5tq465Ux1g60q1fF1y9ejlNIpG7yD//qdps7nE6HBg2hOO3JibG5+fnp6enaZpmWfbhw59XVv9samrp7OoRKhbYdqDX6ysqDNYBW1d3r0ara2vvWt/gGYbBcZxwQ5Kkez06NzeP4w6GYbayuAfi6U3MKsxB25d1zP0ftwUECIKQZqUDgEIu25qgLYQiCIIAgOc9YO8eT5Ikhf1N99Ec5dSrXzmf93JqPORJwFSfgRDa5De2HfT0dIiOwiEf+CAIcNw+OztHkiRBEIIDkiSXlu719baFvA9+r0Jy7J4bN4ZmKOo2SY6Njjoco+2tdf3twQWZz2WnQG3Ja19dyfy/wCJ9JzEaYiPg7Ec7zoqTCpTKwkKlVqvVuTEaGyjqziJNZad4HvOHss8CZf9RpFLpS8sryzXR4a4OPOYPogDQqaOE5ty+Io7jJset+FAzOdJPusFxnGEYnudZln3y+Ann4unM5PCIvXfhh7HJqSmCIAYHB4W/ZHn5ETbYMe60jDst9uFOemHanfWffwFsJ/E8xNSN3wAAAABJRU5ErkJggg==" nextheight="501" nextwidth="1204" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><div class="relative header-and-anchor"><h2 id="h-conclusion">Conclusion</h2></div><p>The evolution of Account Abstraction (AA) in Ethereum demonstrates an ongoing journey to enhance flexibility, security, and usability in account management. Early proposals like EIP-86 and EIP-2938 sought to integrate AA directly into the protocol by introducing new transaction types and modifying both the execution and consensus layers. While these proposals introduced powerful concepts like deterministic contract creation and native gas sponsorship, they were ultimately shelved due to the complexity and disruption of the required infrastructure-layer changes.</p><p>In response to these challenges, EIP-4337 took a different approach, implementing AA at the application layer. By using a higher-layer object, UserOperation, processed via an EntryPoint contract, it enabled features like custom verification logic, multisigs, gasless transactions, and social recovery—all without changing Ethereum’s core infrastructure. This proposal was successfully deployed as a set of smart contracts, marking a practical and incremental step toward realizing account abstraction.</p><p>However, the pursuit of deeper integration didn’t stop with EIP-4337. Recent proposals like EIP-7701 and EIP-7702, as well as Native AA (RIP-7560), revisit the idea of making infrastructure-layer changes. These proposals aim to integrate AA into the protocol itself, addressing execution and consensus layers to reduce gas overhead, improve security, and make features like paymasters and multi-phase transactions more efficient. For example, the Pectra upgrade is set to implement EIP-7702, introducing temporary code execution for EOAs to access AA-like features without deploying permanent smart contracts.</p><p>This progression highlights Ethereum’s adaptive approach to account abstraction: moving from bold infrastructure-layer proposals to pragmatic application-layer solutions and now back to refining protocol-layer designs. These efforts aim to balance innovation with Ethereum’s stability and scalability goals.</p><p><br><br></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/3e806d0e6c688d8fd053154f95bfcf66.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[qcast update #9]]></title>
            <link>https://paragraph.com/@deca12x/qcast-update-9</link>
            <guid>DFpR1N0un04PsKMXEA0P</guid>
            <pubDate>Mon, 22 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[at weekend hackathon i rebuilt the scheduler from scratch with 2 frens, with many features. now i'm gradually adding those features to qcast]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>at ethglobal hackathon i rebuilt a scheduler from the ground-up with 2 frens, with many features, but not fully working</p></li><li><p>now i'm gradually adding thos features to qcast by debugging carefully as i go</p></li><li><p>i recorded a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/deca12x/status/1815571274875170878">new video</a> for a new launch</p></li><li><p>see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/qcast-update-7">update #7</a> (#8 was buggy, i contacted paragraph to get it back)</p></li></ul><p></p><p><strong>_technical_</strong></p><ul><li><p>last week at ethglobal we built a database with postgresql and prisma for several features. i'm implementing this into qcast, but i want to understand things well as i go along, so i've been studying several concepts (e.g. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=tS264hwZn0Y&amp;ab_channel=WittCode">connection pools</a>, db hosting, cloud providers like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://supabase.com/">supabase</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://neon.tech/">neon</a>).</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/deca12x/status/1815571274875170878">here</a> i explain some design choices i was able to make with the knowledge from already having done it last weekend.</p></li></ul><p></p><p><strong>_farza notes_</strong></p><p><strong><em>go through itertive loop 10 times, with 10 different cohorts</em></strong> (your ppl who like what you're doing). remember <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/qcast-update-7">update #7</a> ? ...create, launch, measure, learn... repeat with new cohorts over time.</p><p>to find a <strong><em>cohort</em></strong>, first find a good <strong><em>channel</em></strong> and <strong><em>content type</em></strong> that's right for you rn.</p><ul><li><p>find your <strong><em>channel</em></strong>: e.g. a specific subreddit, discord groups of cs departments of unis, public square in front of public library at specific time...</p></li><li><p>and find your <strong><em>content type</em></strong>: e.g. videos of showing behind the scenes of your software with commentary, learn a song in 30 seconds and perform on the spot, skits about gen z vs boomers, videos of going in pubic and asking ppl for feedback...</p></li></ul><p>it's ok to try several channels and content types at first but find you niche and stick to it. plan it out...</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b614f4df5a0425b5edb4c46359bd4ec2.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAABYlAAAWJQFJUiTwAAACxElEQVR4nJ2RS08TYRSGh8iSyMKdv8SNMXHjwkQjQukNkEsBKXcDBQoiBIioKFFuShOCiAZM8YIKCBgNolgELEwtQzvT2svM12lpC/YGnW+OKdEYXfLkyck5y/c9xJHDkpycTBBE6tFUt8sJEIUdGhwGtKDvU56qOnmiqfKKKRqzAxCHJikpiSCIlJSU5S+m74blWf3DuafjH3pbbFePwcvyRdVx/fvPAQBCKlPK5FmSTJlEqvjrwSmVyf9TKZfLJRKFRKJUKuQKuVQmzc7OmZozTk981JUONjXcW2gvsF0/59TVGjS5EzNLHADBBeLuILiD2BsG/x74YwlRCLaj4IuAN/yPAhYxgAiAMcaCKIoiFjAGUbQFhI7N5RdTjzs0tCaNbyn367qc3m0jALGxsUGSprXVbzTN8B4f6+Y8iPfyXo5DoVAYYzEeF+KCkJhYtE9OutrbdkdGaY428kavyEX3InEACJLr+rGvr57VVNXfqtTMqGTtdc3PDUazFREcx3Isy7Gc0+G0WqyBQCAcDocS/IxGo/t/EAQBAHz0J3q2e9c8zbk2V94Nby2Oh0K7cbTpXLvzZLC9o6yovqxiqFg6X5WvqbxZXdLYea2bsFqt1CZlY2wm0kSSpi1qy2qx0jRjsVjMZjNFUSRJUhSFMQYA+9LbjT6te+pRkFxiOktRvzbGs2R/6X1thUatHWqt6W7tvi0/PzkwNjw6X1KoqShrJlwuF0LI4XAwDOP44bDb7AzNIIQEQYjFYnsH7O/vYyHRRGBez9RK/SNdIde6803nzpIuEvDcbetSF9WrMi/V5V1uvtqTV9iYkdWUdrE8N7uqWNVA8Dzv8/k8Hg/P8yzLIg5xLBcM7gBA4omi+Hs5SBBaXeEH+oKvJyMU5enp9T0YDCPU0XIjPU195nRG+tn8DEl1lrTsgqw+p6BBlVWpLtL8Aq/iHa0y+T5pAAAAAElFTkSuQmCC" nextheight="540" nextwidth="1922" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>however, focus on developing your product as a main concern - nobody wants a shit sandwich on a silver plate with cherry on top.</p><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/f7b2e0a6417097aeb1266d84cd3b2c5c.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[ETHGlobal Brussels]]></title>
            <link>https://paragraph.com/@deca12x/qcast-update-8</link>
            <guid>8hWz6QmYMiEGDMzkyPWt</guid>
            <pubDate>Wed, 17 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Hacking at ETHGlobal Brussels this weekend. Decided to start over 🤯 qcast with different stack, below notes written during hack]]></description>
            <content:encoded><![CDATA[<p><strong>___TLDR___</strong></p><ul><li><p>Hacking at ETHGlobal Brussels this weekend: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethglobal.com/showcase/hoot-6pwj8">Hoot</a></p></li><li><p>Decided to start over <span data-name="exploding_head" class="emoji" data-type="emoji">🤯</span> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/deca12x/0x79ea082d">qcast</a> with different stack, below notes written during hack, see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/qcast-update-7">update #7</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/builders-garden/beearly/blob/main/middleware.ts">cron-job</a> (or other option), &amp; use filecoin for media storage instead of pinata, &amp; <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.lighthouse.storage/lighthouse-1/how-to/upload-data/file">lighthouse</a> to pin to ipfs and a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.dynamic.xyz/features/embedded-wallets">dynamic login</a> &amp; <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.dynamic.xyz/features/orchestration">auth</a> to pay for service</p></li></ul><p></p><p><strong>___Bounties___</strong></p><p><span data-name="wave" class="emoji" data-type="emoji">👋</span><strong> Dynamic Best SocialFi Project ⸺ $2,000</strong></p><ul><li><p>This prize goes to the project that utilizes Dynamic to create a unique social experience with financial incentives. This could involve users interacting over a game, social network or other areas of consumer crypto.</p></li><li><p><strong>Qualification Requirements - The project must be available via a deployment link The project must use Dynamic beyond basic signup/login The project must fall into the SocialFi category</strong></p></li></ul><p><span data-name="trophy" class="emoji" data-type="emoji">🏆</span><strong> Filecoin Prize ⸺ $11,000</strong></p><ul><li><p><span data-name="1st" class="emoji" data-type="emoji">🥇</span><strong>1st place $5,000 </strong><span data-name="2nd" class="emoji" data-type="emoji">🥈</span> <strong>2nd place $3,500 </strong><span data-name="3rd" class="emoji" data-type="emoji">🥉</span> <strong>3rd place $2,500</strong></p></li><li><p>Awarded to the top 3 projects overall submitting to any of the Filecoin tracks - Data Apps, AI Tools or Privacy Tools.</p></li><li><p><strong>Qualification Requirements - Submit a video demo to showcase and walk through your project. - Open-source your project on Github.</strong></p></li></ul><p><span data-name="computer_disk" class="emoji" data-type="emoji">💽</span><strong> Filecoin Data Apps ⸺ $3,000</strong></p><ul><li><p>Best project built on Filecoin storage services (e.g. lighthouse or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://web3.storage">web3.storage</a>) or using FVM (Filecoin Solidity Library) directly to make data management flow smoothly. Examples: industry specific storage apps <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://xxx.storage">xxx.storage</a>, perpetual storage, data aggregators, data caching nodes, truestless notaries &amp; retrieval oracles.</p></li><li><p><strong>Qualification Requirements - Store &amp; use application data programmably using Filecoin storage services (e.g. lighthouse or </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://web3.storage"><strong>web3.storage</strong></a><strong>). - Deploy your project on the Filecoin Calibration testnet, including any associated smart contracts if applicable.</strong></p></li></ul><div class="relative header-and-anchor"><h3 id="h-"></h3></div><p></p><p><strong>___User Flow___</strong></p><ul><li><p>user login dynamic.xyz (social or wallet)</p></li><li><p>user connect warpcast with neynar (get user.signer_uuid)</p></li><li><p>user inputs text</p></li><li><p>user uploads image (optional)</p></li><li><p>ADDITIONAL FEATURE: user uploads frame url (optional)</p></li><li><p>user selects date &amp; time</p></li></ul><p>...client-side sends post request with all this info to server-side endpoint</p><ul><li><p>cast is added to list of scheduled casts</p></li><li><p>user can remove or update the scheduled cast</p></li></ul><p>...when it's time for the cast, it's triggered by cron-job and published</p><ul><li><p>cast is removed from list of scheduled casts</p></li></ul><p></p><p></p><p><strong>___Tech Stack___</strong></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://nextjs.org/docs/app/building-your-application/routing/route-handlers">nextjs</a>, tailwind css</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://dynamic.xyz">dynamic.xyz</a> connect wallet or social login</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://dynamic.xyz">dynamic.xyz</a> to connect farcaster account</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.lighthouse.storage/">lighthouse</a> &amp; filecoin to store images &amp; videos</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://authjs.dev/">authjs</a> to authenticate users</p></li><li><p>upstash/qstash or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://trigger.dev">trigger.dev</a> to schedule cron jobs</p></li><li><p>neynar to publish casts</p></li><li><p></p></li></ul><p></p><p></p><p><strong>___Database (first approach)___</strong></p><ul><li><p><strong>users, </strong>contains:</p><ul><li><p><strong>id</strong></p></li><li><p><strong>dynamic_id</strong></p><p></p></li></ul></li><li><p><strong>signer_uuids, </strong>contains:</p><ul><li><p><strong>id</strong></p></li><li><p><strong>user</strong></p></li><li><p><strong>signer_uuid</strong></p><p></p></li></ul></li><li><p><strong>casts, </strong>contains:</p><ul><li><p><strong>cast id</strong></p></li><li><p><strong>cast text</strong></p></li><li><p><strong>ipfs url of image</strong></p></li><li><p><strong>date &amp; time</strong></p></li><li><p><strong>bool published or not</strong></p></li><li><p><strong><em>? frame url ?</em></strong></p></li></ul></li></ul><p></p><p><strong>___Challenges___</strong></p><ul><li><p>when pinning the image file to ipfs with lighthouse, we were following <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.lighthouse.storage/lighthouse-1/how-to/upload-data/file">this section</a> of the docs, but it was intended for pinning from client-side. we were trying to use a buffer without documentation on it. we unblocked the issue once we realised <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.lighthouse.storage/lighthouse-1/how-to/upload-data/buffer">another section</a> of the docs about it.</p></li><li><p>the new <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://authjs.dev/">authjs</a> library, it was challenging to manage the token.</p></li></ul><p></p><p><strong>___Analytics___</strong></p><p>Retreive casts based on filters (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.neynar.com/reference/feed">docs</a>):</p><ul><li><p>likes_count</p></li><li><p>recasts_count</p></li><li><p>timestamp: "2024-07-13T18:47:04.000Z"</p></li><li><p>name (channel)</p></li></ul><p>Analytics will be <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.tremor.so/docs/visualizations/bar-chart">bar-charts</a> based on castScore = likes_count + (recasts_count * 3)</p><ul><li><p>Graph 1: x-axis is day of the week, y-axis is avg castScore</p></li><li><p>Graph 2: x-axis is 3h time intervals, y-axis is avg castScore</p></li><li><p>Graph 3: x-axis is channel, y-axis is avg castScore</p></li><li><p></p></li></ul><p></p><p>to do:</p><ul><li><p>fid should come from "author": {"fid" ...not "parent_author": {"fid"</p></li><li><p>the unique identifier for a cast should be "casts": [{"hash"</p></li></ul><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6bf15fe1ecfcaf1016e23569bc539915.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[qcast update #7]]></title>
            <link>https://paragraph.com/@deca12x/qcast-update-7</link>
            <guid>xUCOEs37jwT4iQ9aH7s7</guid>
            <pubDate>Thu, 11 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[i'm building a scheduler for casts (posts) on farcaster, follow my journey]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>i'm building a scheduler for casts (posts) on farcaster, join the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/deca12x/0x79ea082d">waitlist</a></p></li><li><p>working on allowing users to upload their images (using Pinata &amp; IPFS)</p></li><li><p>see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/qcast-update-6">update #6</a></p></li></ul><p></p><p><strong>_technical_</strong></p><ul><li><p>users generally don't have a url of the image they want to post, so i need to offer an easy way for them to upload an image and then have it hosted securely.</p></li><li><p>i want to avoid storing the images in my own server, cause if it stops running, all images in users' casts won't be available.</p></li><li><p>so i'm building in the ability for a user to upload an image to ipfs through pinata. the flow looks like this: user uploads the image, when user clicks on cast button, client-side sends image file to server-side (if present) with a post request. server side generates pinata jwt key, then pins image to ipfs, gets the url and includes it in the cast intent as an embed.</p></li><li><p>...this approach is expensive, as it would cost $20 p/m above 500 uploads (on top of the $9 p/m of neynar) and also it's tricky to implement. i found another solution (below), but i want to get it done this way first to learn and have working code for this approach.</p></li><li><p>the alternative is <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://imagekit.io/docs/api-reference/upload-file/upload-file">imagekit</a>, not web3 but has a large free tier and is easier to deal with, even direct from <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://imagekit.io/docs/api-reference/upload-file/upload-file#how-to-implement-client-side-file-upload">client-side</a> i think.</p></li><li><p>in conclusion, this week i want to get the pinata + ipfs approach working. starting next week (i also have ethglobal brussels this weekend) i'll work on the imagekit approach.</p></li></ul><p></p><p></p><p><strong>_farza notes_</strong></p><p>farza says: iterate the build-in-the-open loop:</p><ul><li><p>...create, launch, measure, learn...</p></li></ul><p>so i reached out to my 7 early waitlist users with 3 questions:</p><p></p><p>what not to do when asking for feedback:</p><ul><li><p>don't defend</p></li><li><p>don't make changes based on feedback without understanding why</p></li><li><p>don't ask 'would you use this / check it out?'</p></li></ul><p></p><p><em>"thanks for being amongst the first ppl to join the qcast waitlist!</em></p><p><em>heyoo, i'm </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out relative hover:underline !text-light underline" href="https://warpcast.com/deca12x"><em>@deca12x</em></a><em> core member of </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://urbe.build"><em>urbe.build</em></a></p><p><em>can i please <span data-name="heart" class="emoji" data-type="emoji">❤</span> get an idea of</em></p><ul><li><p><em>do you always cast from warpcast? (what else?)</em></p></li><li><p><em>do you use any tools to plan future casts?</em></p></li><li><p><em>what is your least favourite thing about warpcast?</em></p></li></ul><p><em>the best way to support qcast rn is to cast a referral frame <span data-name="point_down" class="emoji" data-type="emoji">👇</span> </em><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://warpcast.com/~/compose?te"><em>warpcast.com/~/compose?te</em></a><em>..."</em></p><div data-type="embedly" src="https://beearly.club/w/qcast" data="{&quot;provider_url&quot;:&quot;https://www.beearly.club&quot;,&quot;description&quot;:&quot;Beearly - Launch your waiting list on Farcaster.&quot;,&quot;title&quot;:&quot;Beearly - qcast&quot;,&quot;thumbnail_width&quot;:804,&quot;url&quot;:&quot;https://www.beearly.club/w/qcast&quot;,&quot;thumbnail_url&quot;:&quot;https://ik.imagekit.io/buildersgarden/qcast-landing_3PlsW4FEe.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Beearly&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:421}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://beearly.club/w/qcast" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://ik.imagekit.io/buildersgarden/qcast-landing_3PlsW4FEe.png" class="false"><div class="twitter-summary-card-text"><span>https://www.beearly.club</span><h2>Beearly - qcast</h2><p>Beearly - Launch your waiting list on Farcaster.</p></div></div></a></div></div><p></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b671c106973718b64c26ee1353e910a.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAIAAAD4YuoOAAAACXBIWXMAABYlAAAWJQFJUiTwAAAEB0lEQVR4nK2Ub0/bVhTG7xfYi0l9ufX9Wm3S+gUGncQfTduqFYgrRMOmNoBKHE0rTjtBUDVIpgkI1QAHpSGoZfHoCnaqzopTLYBpS+KoNHFSQHFCJWIHBvN9U3S1SqR3Sm/LtHSTNmlHlnV0fe/5Pec5tkFj40cAgJjoD11jVuN3cCXK+P+I3j6XIIQBx3GSFI1K4sxM8Pnzg8PHkUiEZX1jY2MzodC/qFZ+JevPxDR/QwgBhnHW1TcEpqYv2L+c58PzfDjE/SjffxCYCjY1W9rOWrsudI9PTAampgNT0+Hw7af7+/+pD6BpGs/zuq6n0mlRFAUhLElRRUkihAyjZJrm7t5ePl8gl2GUXi8BzVIhl3yipXaMwmbu4ctEW93MPdwxNoFpmjzP5/OFufl5q7W9tra2o6OLYZh/UoT+EvsH5XJCFvzeLoH7dmVx9rqv5+b0lZXFmzcmnf6r9tWECHRd/4q5LElRVU0rivIo9UhRFJb1WSwUx3EM46SoVp7nOzq6bLZOssIwzmAwyHEcTTus1vZg8Pr4xOSZM212u+PWHD/i/X4lrty9G4stLm7kcmBdVd87+kZzc3N7+xeZTFaWZQihLMuZTNYwShw3S8wRhLBhlPL5wrnzNopq5bhZwygxjFNRkhBCwyhpmkbuNO24fOnrWCzmGRzi526D5fvLAIA3jxx56+2j3Xb63vI9jLGmac9+f4YQ0jQNY2ya5laxSJLePpfN1ikIYYSQy9VP1g/DNM2ZUOgFWGHHAz/fkcBKUgEAfPzJp6c/a/F6rypKkgCIx6qqVsYIYT5fIOf7+6/QtEOSogght9uj63rVhK4FAhd7GFVVXwIeZ7MAgGPH321qojKZLNlHABiXWdZH6oqiiDHeLm1brZ83NDQSQLedNk2zqgO322OxUKqa9gyOzP0kgPWNNQLwekdFUSRKt4rFFwC8tLREdMmyTM57vaMXe5hUOo0QGhh0VwEghBw363Z7NE3jQrdiv8hg7XEF8EFNTU3Nh719rt29PYzxRi5HLOJ5ntRdicdJQtMOi4USRfFvAUTBufO29Y217zzeSgebTzQAwDvHjje3tEQiEeJpJpMlAPmVcEVRSGKzdVosVCQSgRD29rkghFWAsfEJm61TVdPsuL8yg9XUKgDg/RMnTp6s8/n85K3QdZ1YJMvy0/19hBAZvmmaLOvzekdjCwsIodjCQvVXDeFMKDQ0PLJVLAYDNyoWSVIUAEBRrT6ff2f7V7KPdIAxHhoe0XWdOIsx3t3bbWs7W1ffwLI+AqsCGEbpm4GBU6dOJxJxz+BQxaJEIg4AqKtvmOP5H0LcQbnyLyRDPhQOIUyl06QDp/MSTTtIi0PDI6/PIDAVZBinpuWIRX8A492d+lIxxk8AAAAASUVORK5CYII=" nextheight="1344" nextwidth="2720" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6a1d32bd072c07c2f74d5e10936973a9.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[qcast update #6]]></title>
            <link>https://paragraph.com/@deca12x/qcast-update-6</link>
            <guid>wmE3gb8HLbwK5amaD9FN</guid>
            <pubDate>Mon, 08 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[users can now upload their pic]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>i'm building a scheduler for casts (posts) on farcaster</p></li><li><p>users can now upload image</p></li><li><p>ppl can now join <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://warpcast.com/deca12x/0x79ea082d">waitlist</a></p></li><li><p>see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/qcast-update-5">update #5</a> &amp; <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/s5-update-4">update #4</a></p></li></ul><p></p><p><strong>_notes_</strong></p><ul><li><p>been using a great <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://pinata.cloud/blog/how-to-upload-to-ipfs-from-the-frontend-with-signed-jwts/">guide by pinata</a> for safe client-side uploads</p></li></ul><p>a few hours later...</p><ul><li><p>...ok update, i decided to leave the upload pic part for later, since i'm at ethcc7 in brussels rn and there's a lot going on.</p></li><li><p>you can now cast your pic but you have to already have the url - i.e. have it hosted somewhere</p></li></ul><div data-type="embedly" src="https://warpcast.com/deca12x/0x79ea082d" data="{&quot;large&quot;:true,&quot;title&quot;:&quot;deca on Warpcast&quot;,&quot;description&quot;:&quot;looking for a minimal easy way to schedule your casts for later?\n\ni'm building qcast, join the waitlist and i'll show you how i'm building it https://beearly.club/w/qcast&quot;,&quot;url&quot;:&quot;https://warpcast.com/deca12x/0x79ea082d&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/papyrus_images/0b10702c99722ee4484782adb3bfbefe.png&quot;,&quot;provider_url&quot;:&quot;Farcaster&quot;}" format="large"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://warpcast.com/deca12x/0x79ea082d" target="_blank" rel="noreferrer"><div class="twitter-summary-large-image"><img src="https://storage.googleapis.com/papyrus_images/0b10702c99722ee4484782adb3bfbefe.png" class="large-summary-image"><div class="twitter-summary-card-text"><span>Farcaster</span><h2>deca on Warpcast</h2><p>looking for a minimal easy way to schedule your casts for later?

i'm building qcast, join the waitlist and i'll show you how i'm building it https://beearly.club/w/qcast</p></div></div></a></div></div><div data-type="embedly" src="https://warpcast.com/deca12x/0x947e5d7a" data="{&quot;large&quot;:true,&quot;title&quot;:&quot;deca on Warpcast&quot;,&quot;description&quot;:&quot;urbe houz 🇧🇪 cast from script with pic https://scarlet-reasonable-mule-649.mypinata.cloud/ipfs/QmaZQqf2NULqMZnCrHBqoEoWSi7yrEHHTeH84JZEyKmUmi&quot;,&quot;url&quot;:&quot;https://warpcast.com/deca12x/0x947e5d7a&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/papyrus_images/78c7a6207dabd7b4728d695b9f2e725c.png&quot;,&quot;provider_url&quot;:&quot;Farcaster&quot;}" format="large"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://warpcast.com/deca12x/0x947e5d7a" target="_blank" rel="noreferrer"><div class="twitter-summary-large-image"><img src="https://storage.googleapis.com/papyrus_images/78c7a6207dabd7b4728d695b9f2e725c.png" class="large-summary-image"><div class="twitter-summary-card-text"><span>Farcaster</span><h2>deca on Warpcast</h2><p>urbe houz 🇧🇪 cast from script with pic https://scarlet-reasonable-mule-649.mypinata.cloud/ipfs/QmaZQqf2NULqMZnCrHBqoEoWSi7yrEHHTeH84JZEyKmUmi</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/38d28f503e94c85cfb07a74012a925aa.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[qcast update #5]]></title>
            <link>https://paragraph.com/@deca12x/qcast-update-5</link>
            <guid>xZgFIoIKYyaO3NFWPfqm</guid>
            <pubDate>Fri, 05 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[i'm building a scheduler for casts (posts) on farcaster
to do: launch product with a beearly waitlist + work on cron job]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>i'm building a scheduler for casts (posts) on farcaster</p></li><li><p>to do: launch product with a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.beearly.club/">beearly</a> waitlist + work on cron job</p></li></ul><p></p><p><strong>_launch notes_</strong></p><p>from week 3 lecture &amp; lab</p><ul><li><p>first: this is not 'buildspace hw', it's my own thing, so don't mention buildspace, n&amp;w, s5 or farza too much.</p></li><li><p>how to know who your ppl are:</p><ul><li><p>trust (e.g. follow, newsletter sign-up)</p></li><li><p>usage</p></li><li><p>money</p></li></ul></li><li><p>...so you need a call to action (cta) so ppl know what to do to show you they care and want to participate in your projects.</p></li><li><p>to build in public, you must "launch" your product over and over to get other people to care. if it's a video, ideally 40 seconds. in a launch, you need:</p><ul><li><p>hook / heading / one liner explaining what you're working on</p></li><li><p>description... don't show a bunch of features, focus on the thing that makes it cool and why ppl would wanna be part of it.</p></li><li><p>cta... what do you want ppl to do next to show that they care</p></li></ul><p>what does farza look for:</p><ul><li><p>what is it?</p></li><li><p>what’s in it for me?</p></li><li><p>is it legit?</p></li><li><p>how do i get it?</p></li></ul></li></ul><p></p><p><strong>_technical notes_</strong></p><ul><li><p>use example of <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/neynarxyz/farcaster-examples/blob/main/gm-bot/src/app.ts">gm-bot</a> for cron job</p></li><li><p>the example uses <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.npmjs.com/package/node-cron">node cron</a></p></li></ul><p></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e070e2d0240fb64eb755b07b869edc4a.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAgCAIAAABywqTfAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAERklEQVR4nI1Vf0hbRxy//Lr37t175r3EaPLS1sRmZi51aTO7xKQ2qW2g0cLSMBtXMgVXcS2duNpKBeeCmnZ0s3NlbiMltcNBy9ha2VhH/+gYRVkR+u/wD/8ZDITBQNj/u3Hv4jOKs375cry7d9+7+34+n/seCAaDyWTSbrdDCPHuTBJFwHFZr/eYUwWFQmFxcdHr9RoMht0E8xDSeIuFTF9aynUAZrvffGMhQQAcBzDGdrtdP5juW7pbfrF4jPHGzkaep+tBuLVlDiGAkM7RWv0UgMXzgqCKYpPNnvF46mW5TXUfcaltLrVRsfll5SWbrdXpanW63JIUqnZ4ZCtEaCNekSRgNv/+Tpos3CafXyFLs+Tba6Q4Qrul0X+uvE1+/oz8OEV++IRMXyJPZkqJlk3xGGOIUL3VGql1VldVZfbtW+nPfHnk9fHmg+PNB4tHI0u5jo8OH2pT3X5Z8cuKowIFoOev57kXY/LLF+TJDCmcJ0+L5OEN8uwO+WbcXlVFUTCbeUFg4OHK/HXAeUGgOBmN+32+sXx+f0MDZZjjIIQCx/GbmQb/xzwPoaqq2WxWVVWoaWbbaaC8P9xkbBOT0ahLq3ICxWvdAA8hy0eRJEkUFUliHywdRZbZSLm7/ot1eUEAEKEaSbIiBDRtALMZ8ALQFqVdi4W6KBrMZoqu0QgQolhoLcYYAIulY89esjS7NpT78+IZku8jpVHK88zw6kCWUpDvI/cnya0h8tOn5OsPycfvUUXcHEyqbk2U2v7TLc0XX/Y/aI8/eqOtlIj0+nxXgwdm22KP0ifIwu3v2+Pn/Q3zpxKPT58YbgpMHj7U6/M1KjZKE8ufHhKhfz/opSIrjvz9/ln68ewOPcvNQXJvgnx3nfz6Fbk38ceFToAx0DjGOv6KJEGEAoot4VKTmviTqnswEb/W2Xk6Ep54LZgPvfqmx/uWxxuqdjDwtuqHVRV2zxhy716+PHP3bve5cxRUk4kip6G4k36kinteri0A6MwxIjfF8+vysCKku8BxjHZdDvq4FSFFknQVA/3+UVSY88K680AU6cktFjouijQFXgBasSmXMCpMhFRRLCUis8dapsKhB+3x5b701eCBueOx5b70cFNgKhx63t1RPBpe6Dq53JeeCoc8srWMv6BhFnbUkMe3aPGYy1OqiiNzx2OrA9m1odxfg13k+gXy8MZvZ1OrA1kqqtJoo2Ir64/x75RlKmEtJYhQwqUudqXWhnKU+eIIuT+ZrqtjymUsbFN/+PUrBDguVutc6c+sDeWed596eubkSn8m5d4DNFArSzDe9v5LomjSyHslES/Nz8dSKQCAaXPYC+qHpBHmUJT6urqa6morQi+oH3g7gxAaDIadnyZgMBh0nTHbYXal8YJAVePz+aLRaDAYjEajra2tgUBgN28hA7tWEEA6nS4UCj09PWNjY4VCIZvN7uYhhgg5RNEvK/8Bvp0tr4VmC6AAAAAASUVORK5CYII=" nextheight="2736" nextwidth="1824" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/a14e859db054fda9d1232c90741747c0.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[s5 update #4]]></title>
            <link>https://paragraph.com/@deca12x/s5-update-4</link>
            <guid>ZcfFqj5F9HIMWE6Anlsk</guid>
            <pubDate>Sun, 30 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[building toy version = cast from script]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>studied &amp; revised a lot of concepts and tools: neynar, nextjs vs express, fetch api, postman vs swagger.</p></li><li><p>building toy version = cast from script, no frontend</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@deca12x/s5-update-3">last update</a></p></li></ul><p></p><p><strong>_toy version_</strong></p><p>1. project setup<br>- set up nextjs repo<br>- structure folders like this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://nextjs.org/docs/getting-started/project-structure￼￼￼2">https://nextjs.org/docs/getting-started/project-structure<br><br></a>2. write logic to connect signer, neynar api key, neynar client and post cast<br>- first read docs for posting a cast <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.neynar.com/reference/post-cast">https://docs.neynar.com/reference/post-cast</a> then write all logic in one file neynar.ts but use these 2 github links as examples:<br>- main logic will be similar to this (search createcast) <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/builders-garden/pulse-api/blob/main/src/modules/farcaster/farcaster.service.ts￼-">https://github.com/builders-garden/pulse-api/blob/main/src/modules/farcaster/farcaster.service.ts<br>-</a> get neynar client from neynar api key <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/builders-garden/pulse-api/blob/main/src/utils/neynar.ts￼￼3">https://github.com/builders-garden/pulse-api/blob/main/src/utils/neynar.ts<br><br></a>3. test the api call with postman<br>- study this about fetching apis <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://developer.mozilla.org/en-us/docs/web/api/fetch_api/using_fetch￼-">https://developer.mozilla.org/en-us/docs/web/api/fetch_api/using_fetch<br>-</a> set an endpoint and test with postman or swagger <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://nextjs.org/docs/pages/building-your-application/routing/api-routes￼localhost3000/api/qcast">https://nextjs.org/docs/pages/building-your-application/routing/api-routes<br>localhost3000/api/qcast</a> ... this will call route.ts inside api/qcast<br></p><p><strong>_later_</strong><br>4. endpoint accept calls only from my frontend<br>- to protect endpoint: create a x-secret in the .env<br>- pass to the api - in postman headers (or in frontend headers later) set it to be the same<br><br>5. in my frontend, only specific farcaster user can call api<br>- in page body, use neynar authentication so it gets the signeruuid from the fid<br>authentication <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.neynar.com/docs/how-to-let-users-connect-farcaster-accounts-with-write-access-for-free-using-sign-in-with-neynar-siwn">https://docs.neynar.com/docs/how-to-let-users-connect-farcaster-accounts-with-write-access-for-free-using-sign-in-with-neynar-siwn</a></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c6b2aee5f7907b97193d85d0206a2eaf.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[s5 update #3]]></title>
            <link>https://paragraph.com/@deca12x/s5-update-3</link>
            <guid>Lul8rdDdXAYeZPiKITT4</guid>
            <pubDate>Fri, 28 Jun 2024 15:12:33 GMT</pubDate>
            <description><![CDATA[_tldr_i realised that my idea was too ambitious and loosely defined (houses onchain)i found a real problem to address for myself: scheduling casts on...]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr_</strong></p><ul><li><p>i realised that my idea was too ambitious and loosely defined (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@housesonchain/s5update1">houses onchain</a>)</p></li><li><p>i found a real problem to address for myself: scheduling casts on farcaster</p></li><li><p>my new idea is: build a scheduler for casts on farcaster</p></li></ul><p></p><p><strong>_idea development_</strong></p><ul><li><p>i write and schedule several weekly posts for <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/ethrome">x.com/ethrome</a> and for <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/urbeeth">x.com/urbeeth</a> using <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://buffer.com/">buffer.com</a></p></li><li><p>it's not the worst experience in the world, but not the best either, so i thought: can i do this myself with the x api, maybe some library like tweety, cron jobs and a cloud server? (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://vercel.com/templates/python">https://vercel.com/templates/python</a>) ...</p><div data-type="youtube" videoid="r9DzYE5UD6M">
      <div class="youtube-player" data-id="r9DzYE5UD6M" style="background-image: url('https://i.ytimg.com/vi/r9DzYE5UD6M/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=r9DzYE5UD6M">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><div data-type="youtube" videoid="2sehQ5oABqI">
      <div class="youtube-player" data-id="2sehQ5oABqI" style="background-image: url('https://i.ytimg.com/vi/2sehQ5oABqI/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=2sehQ5oABqI">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div></li><li><p>sure, i could, actually not too easy but can be done - apparently the x api is notoriously hard to work with. however... my friend and neighbourhood lemon (co-founder of urbe.eth) suggested, why not do one for farcaster? then we could automate posts on both platforms!</p></li><li><p>so off i went figuring out how to do this... the cron jobs and server part remain the same, but the key tool will be the neynar sdk to post directly from a script <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.neynar.com/docs/how-to-create-a-farcaster-bot">https://docs.neynar.com/docs/how-to-create-a-farcaster-bot</a></p></li><li><p>a nice to have would be to still connect to the x api, so that when my tweets scheduled on buffer are published, my app sees them and reposts them as a farcaster cast! not sure yet if we'd use this feature.</p></li><li><p>my mvp has 3 steps:</p><ul><li><p>1. cast from script using neynar</p></li><li><p>2. schedule a cast with a cron job</p></li><li><p>3. host my app on a cloud server so it runs 24/7</p></li></ul></li><li><p>first things first. i am late as i have been finishing off <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://beearly.club/">https://beearly.club/</a> submission for the base onchain summer buildathon</p></li><li><p>so now i need to build a toy version this weekend. i need to build step 1 at least, <span data-name="savoring_food" class="emoji" data-type="emoji">😋</span></p></li></ul><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/9017f770bf63521da6eaeeac5441000b.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[s5 update #2]]></title>
            <link>https://paragraph.com/@deca12x/s5update2</link>
            <guid>5zUvtV85jzFXku0yB3Ek</guid>
            <pubDate>Thu, 20 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[houses onchain, buildspace s5, update #2]]></description>
            <content:encoded><![CDATA[<p><strong>_tldr recap_</strong></p><p>buildspace has 4 houses like hogwarts: spectreseek, alterok, gaudmire and erevald.</p><p>i'm enhancing the ‘houses’ experience!</p><p>or see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://paragraph.xyz/@housesonchain/s5update1">previous update</a></p><p></p><p><strong>_plan_</strong></p><p>since s5 is 6 weeks long and i'm learning as i go, by the time i finish:</p><ul><li><p>defining the idea</p></li><li><p>building the solidity smart contract</p></li><li><p>building the thirdweb ui bit</p></li><li><p>building the database</p></li><li><p>building the frontend</p></li><li><p>linking it all together</p></li><li><p>+ i'm building in public</p></li></ul><p>...s5 will be over, so:</p><ul><li><p>1, i will just build a simple database and super simple frontend and hopefully start getting users</p></li><li><p>2, i will try for a longer-term aim, not just the 6 weeks of s5 </p></li></ul><p></p><p><strong>_priority_</strong></p><ul><li><p>spin up a nextjs project with one page and simple user input to sign-up</p></li><li><p>and postgres db</p></li></ul><p>(anyone can sing-up - later i can introduce a 'certified' feature that can only be assigned by someone with @<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://buildspace.so">buildspace.so</a> email address)</p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6000f434138688c361b4c5e201699d32.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[s5 update #1]]></title>
            <link>https://paragraph.com/@deca12x/s5update1</link>
            <guid>kPyEv2ynfDvRrfzkWwVP</guid>
            <pubDate>Wed, 19 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[houses onchain, buildspace s5 update #1]]></description>
            <content:encoded><![CDATA[<p></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/619140f0367ca08274ba943204df18ba.png" alt="" blurdataurl="data:image/png;base64,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" nextheight="1256" nextwidth="1836" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>_intro for context_</strong></p><p>buildspace’s nights &amp; weekends season 5 has just begun! i will be working on “houses onchain”.</p><p>buildspace has 4 houses, a bit like hogwarts in harry potter: spectreseek, alterok, gaudmire and erevald.</p><p>They each have their unique traits and vibe:</p><ul><li><p>spectreseek is for the passionate. the bold. the pioneers</p></li><li><p>alterok is for the reflective. the profound. the philosophers</p></li><li><p>gaudmire is for the ambitious. the imaginative. the dreamers</p></li><li><p>and erevald is for the harmonious. the rooted. the caretakers</p></li></ul><p>my goal for s5 is to enhance the ‘houses’ experience within buildspace!</p><p><strong>_idea_</strong></p><ul><li><p>the basic idea is: students own an nft representing their house.</p></li><li><p>specific actions award or remove votes to the overall house score and to the students' individual score.</p></li><li><p>the individual points awarded have a weighting based on house size. this mechanism ensures that house sizes don't become unbalanced - i.e. new students are incentivised to pick smaller houses to get more points. unother method to address this would be to have sage act as a sorting hat, but i fear that ship has sailed since people have already been picking their houses.</p></li><li><p>at the end of s5 (or of the year) there are prizes (tbd) awarded to the top house (e.g. everything temporarily branded like that house) and to the top students (e.g. cash award? or special buildspace swag)</p></li><li><p>students are incentivised to join (i.e. get the nft, which is free) because then all of their hard work will be reflected in the houses and individuals' leaderboards, adding points to their houses</p></li><li><p>students don't need to have a web3 wallet to do this, they can just login with google/fb... using web3 social login</p></li></ul><p><strong>_implementation_</strong></p><p>user identifier:</p><ul><li><p>i'd create an erc1155 smart contract that mints 4 nft types (one for each house)</p></li><li><p>or could store user wallet addresses or even e.g. emails on a db or onchain (need to weigh pros &amp; cons)</p></li></ul><p>ux:</p><ul><li><p>to remove friction from the ux, i'd use web3 social login using thirdweb tooling, meaning that users can just login with google / fb / apple... and that spins up a wallet for them. the only caveat is that those wallets won't have funds, so we'd have to send them the nft ourselves, which costs on the order of 10p per user.</p></li><li><p>thirdweb offers react components to let users buy crypto (do i want this friction?), or also offers account abstraction functionality to let users mint with my money (hmm, worth it?)</p></li></ul><p></p><p>I have to run now. wish me luck</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6a3bf1741a73cde2acc1d9ef7c282960.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAANCAIAAABHKvtLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE7UlEQVR4nBWTe1DTBRzAfwRsv8d+j429xzZggw3GAAHnkDEeAoOGAtLAjPEYDEEhCAUlHgqhaNwpdigCWSgK6SUYqWWKD1Lg9DDNUkTkPNIwwMuu1Lzr/Hbcff74/P25+yBwt/Ob+uQXtRHQ5wsjOljohLluuOmE2SZ4WAfPDsJ4AYzEP+ryuljle7rC8Oxkwsuz4XAzAx5s+fVQCky1wJtD82dyT+UrYpQeTVavipWCZRImWycMFpEslEBOlyclisgHB1ZChxkaFTc2q3qtsvtFQhgOgIl8uFUN59Y/3Bd0oVr58sS7x53abSb0QAb5+oIBpou/Lvb777oT7iRfa404V6ozirl1MeK1GjpOJagxSgye1DsohmSqhXEy/nhzGLRH3U9TJopwmzczUcCHQQ2MRr48ZrlTt3J7nPrsZuOL01m3DtoGSj3Hdkp/71fBzcDrjZ5/DZonu7ye9KfAaOb91qBBp3y1hvk4Smjz5cl5FAvFkL15CaEivl1Dwvv6J9matSoqRU4t7o6E4VS4aIJL+Scc4bXJ+v7cgF/2WWAwa7TR3JhG/Dnkd/cz+XizdL4j6O2VkieN6oU62etdChjwKzYLayI5UppAMUzJoxGYbRvbnxWv5T7O8561edWEMpESBi5XwULL5J7g2xt9O9ICPl0T1GnTPO+2jlUFwkj+VyWhQ2X83gLuaLO0J0f6Q33U3AEzfGmAYTv8aCpP4iIIyiEwAqcChFwEZvaPN8QWRit/+iLmcqHPHj3anSx9e74SFrvmTxbV6ElHiCxdxevJ9h+rj+tKlMJ32QvdsTBpgLko+Df2tyFjjYkLl+1wwwFv+mB2d1Mi6eKKyxhKQFMYykFguq09M2yVjIxQK/ZY/FbxWFe2xsLMLpiohH+Oz/Q4U315NM62aAV6Ke/MOjH0ac8liT/PUzfalBf2ho+0GbK1zKXqUBgrgsetT7uzaqM8UryJknChgCYYgoPATOvz/pJ0FZ2qlZSuUKj59PTuBDhlhfEyeNoBr/paCmIQBGGhKOLuLqTRDSu4kZ4UgryDIO6IC0vpwbOqpC2pcrhXCc9aj2/g5QTRjiCmIpwnoAkCIxCYau6sTo8XE6Fixo/BB3O1cDR9vsUE3xbDH/3wouv7hiQ3V3c2iWMcHHFzNys9An3ELmw2RqFsDobjmEkunNwufdSddOfwxts7pJXRIrWADhRwVB4URRIIDBUU6hQGEW0SU3Faz/mjea/a4xd3Rr8dKIap7qs7LE6j0MUVdcfZbtgSFInhGJsmCRTHWCiKYoQjRNhjJbcmiHUi4WiwrClAirBwbx7pxaeWRttmDToSLUlRiwkW64MVqiN27bBN1BsrmdtnvbbTukwiUHrQBEFRXBonORiBu+GYmE+v9hXhHA6H4frI+VWRZLbEI10tzY5gQ5eqPYOiOYxWyOjFXAwjl/Lea5JOHFSE6MOKcuyb7Bm9DcXTA22Lw+1jR5qvtRXkrMu0JCRuKimuKCvLy82Ji42pqixvqCx3OvIKCws/LHEeq80d6WjYu6308CcOeFwzdf6jnPioKBkeIuGiKIa4uOLbo1G4qstcpfFS++v8AwQCyUb7e2vMEY7o0J/rNRaTni+WaP01yw3LVWqVRuNnMkX6LInGUyZPC9bVJwT+3WvckrvcFhHWbjO2rg81axQKhtAKSDbG+R9/zM8qIq2mNwAAAABJRU5ErkJggg==" nextheight="266" nextwidth="640" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p></p>]]></content:encoded>
            <author>deca12x@newsletter.paragraph.com (Deca)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/258245c67a445eb2fa9a2ac3dbe3827f.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>