<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Matthew Revell</title>
    <description>The latest articles on DEV Community by Matthew Revell (@matthewrevell).</description>
    <link>https://dev.to/matthewrevell</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F157525%2Fb47266bf-dccb-4566-b01e-733c103702d5.jpg</url>
      <title>DEV Community: Matthew Revell</title>
      <link>https://dev.to/matthewrevell</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/matthewrevell"/>
    <language>en</language>
    <item>
      <title>$500 Challenge Drop</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 22 May 2026 14:54:18 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/500-challenge-drop-o9</link>
      <guid>https://dev.to/100daysofsolana/500-challenge-drop-o9</guid>
      <description>&lt;p&gt;If you’re taking part in &lt;strong&gt;100 Days of Solana&lt;/strong&gt;, look out for the  &lt;strong&gt;$500 Challenge Drop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Complete &lt;strong&gt;Monday’s or Tuesday’s challenge&lt;/strong&gt; (Day 36 or 37) and you’ll be entered for a random chance to win &lt;strong&gt;$500&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s it: complete the challenge, submit your work, and you’re in the draw.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is 100 Days of Solana?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;100 Days of Solana&lt;/strong&gt; is a daily, hands-on learning challenge from MLH and Solana for Web2 developers who want to understand Solana by building with it.&lt;/p&gt;

&lt;p&gt;Each challenge introduces one practical concept at a time, using familiar JavaScript tooling while gradually moving from fundamentals like keypairs and transactions into tokens, accounts, and programmable assets.&lt;/p&gt;

&lt;p&gt;This week’s challenges continue the move into &lt;strong&gt;Token Extensions&lt;/strong&gt;, where Solana tokens start to feel less like static assets and more like programmable building blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to enter
&lt;/h2&gt;

&lt;p&gt;To be entered for the &lt;strong&gt;$500 Challenge Drop&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Complete &lt;strong&gt;Monday’s or Tuesday’s 100 Days of Solana challenge&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Submit your work at the bottom of the challenge&lt;/li&gt;
&lt;li&gt;You’ll be entered for a random chance to win &lt;strong&gt;$500&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start here: &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;mlh.link/solana-100&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Complete the challenge, submit your work, and you’re in.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>learning</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Arc 1 Recap: Keypairs, Wallets, and Solana Fundamentals</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 22 May 2026 10:16:13 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/arc-1-recap-keypairs-wallets-and-solana-fundamentals-2hkj</link>
      <guid>https://dev.to/100daysofsolana/arc-1-recap-keypairs-wallets-and-solana-fundamentals-2hkj</guid>
      <description>&lt;p&gt;Typical web and mobile development often starts with a few familiar questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's the data model going to look like?&lt;/li&gt;
&lt;li&gt;How am I going to handle user accounts and auth?&lt;/li&gt;
&lt;li&gt;Where am I going to host this thing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web3 development has its own set of "how do I start?" questions but they're not the same as what you'd expect if you're coming from a Web2 background.&lt;/p&gt;

&lt;p&gt;Arc 1 of &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; was all about learning those fundamentals.&lt;/p&gt;

&lt;p&gt;What are the Solana equivalents of user accounts, dev/prod environments, data storage, and so on?&lt;/p&gt;

&lt;h2&gt;
  
  
  Identity starts with a keypair
&lt;/h2&gt;

&lt;p&gt;Identify works differently in the Web3 world. It starts with a keypair, rather than an account someone creates for you.&lt;/p&gt;

&lt;p&gt;But the similarities with typical user accounts break down once you look at the detail.&lt;/p&gt;

&lt;p&gt;A Solana keypair is created on your own computer.&lt;/p&gt;

&lt;p&gt;There is no signup request, no account creation API, and no backend service issuing you an identity. Your machine generates two linked pieces of data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a public key &lt;/li&gt;
&lt;li&gt;a private key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The public key is your Solana address. You can share it freely, paste it into a faucet, or look it up in a block explorer.&lt;/p&gt;

&lt;p&gt;The private key proves that you control that address. You keep it secret, just like you would keep an SSH private key secret.&lt;/p&gt;

&lt;p&gt;The important thing to understand is this:&lt;/p&gt;

&lt;p&gt;Creating a keypair gives you a valid Solana address, but it does not automatically create anything on-chain.&lt;/p&gt;

&lt;p&gt;That can feel strange if you are coming from Web2. In a normal web app, a user account usually appears only after a row is inserted into a database. On Solana, the address can exist before the network has stored any data for it.&lt;/p&gt;

&lt;p&gt;So there are two related ideas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The address:&lt;/strong&gt;&lt;br&gt;
This exists as soon as your keypair exists. It is just derived from your public key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The on-chain account:&lt;/strong&gt;&lt;br&gt;
This exists on a specific Solana cluster only once the network starts storing state for that address. For example, that might happen when you receive devnet SOL from a faucet.&lt;/p&gt;

&lt;p&gt;That means a brand-new address can be completely valid, even if Solana Explorer shows no account data for it yet.&lt;/p&gt;

&lt;p&gt;It is a bit like generating an SSH key. You can create the key locally before any server knows about it. The public key is real immediately, but it only becomes useful on a specific server once that server has been told about it. On Solana, your address is real immediately, but a particular cluster only stores account state for it once something happens there.&lt;/p&gt;

&lt;p&gt;This is one of the first places where the usual Web2 mental model starts to shift. In a Web2 app, an account usually begins as something a service creates and stores. On Solana, control is cryptographic: you control the wallet because you hold the key that can sign for it. No company needs to store your credentials before the address exists, and no admin panel can recover the private key for you.&lt;/p&gt;

&lt;p&gt;That is not the whole story of Solana, but it is one of the foundations everything else builds on. If you do not understand what controls an address, transactions, accounts, tokens, and programs all feel more mysterious than they need to.&lt;/p&gt;

&lt;h2&gt;
  
  
  From generated key to funded address
&lt;/h2&gt;

&lt;p&gt;If you know one thing about Web3, it might be that each blockchain has its own currency. On Solana, that currency is SOL.&lt;/p&gt;

&lt;p&gt;SOL is what pays for activity on the network. In Arc 1, though, we did not start by spending real money. We started with devnet SOL: free test tokens used on Solana’s developer network.&lt;/p&gt;

&lt;p&gt;A few lines of @solana/kit produced a brand-new keypair. The important call was small: generateKeyPairSigner() created a signer and returned an address that we could print straight to the terminal.&lt;/p&gt;

&lt;p&gt;That first step is intentionally plain. Before there is a wallet app, login screen, dashboard, or account setup flow, there is just a keypair:&lt;/p&gt;

&lt;p&gt;a public key, which gives you a Solana address&lt;br&gt;
a private key, which proves you control that address&lt;/p&gt;

&lt;p&gt;We then funded that address with free devnet SOL from the Solana faucet. More precisely, the faucet sent lamports to the address. Lamports are the smallest unit of SOL, a bit like cents are to dollars, except 1 SOL equals 1,000,000,000 lamports.&lt;/p&gt;

&lt;p&gt;After that, a balance check showed that the address now had account state on devnet.&lt;/p&gt;

&lt;p&gt;That is a useful break from the usual Web2 sequence.&lt;/p&gt;

&lt;p&gt;In a typical web app, the user account usually starts as a row in a database. The app creates the account, stores the user record, and then the user can do things.&lt;/p&gt;

&lt;p&gt;On Solana, the address can exist first. It is valid as soon as the keypair is generated. The network only starts storing account state for that address on a particular cluster once something happens there, such as receiving lamports.&lt;/p&gt;

&lt;p&gt;Arc 1 also introduced devnet, one of the most important environments for learning Solana. We were not using local mocks or screenshots of a production system. We were using a real Solana cluster with the same core APIs and concepts as mainnet, but with tokens that have no real-world value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Persistence makes the key useful
&lt;/h2&gt;

&lt;p&gt;Generating a keypair is only the first step.&lt;/p&gt;

&lt;p&gt;If the keypair lives only in memory, it disappears when the script exits. That is fine for a quick demo, but it is not enough if we want to keep using the same Solana identity.&lt;/p&gt;

&lt;p&gt;So the next step was persistence. We saved the keypair to a local JSON file, then loaded it again each time the script ran.&lt;/p&gt;

&lt;p&gt;That gave us the same address across multiple runs.&lt;/p&gt;

&lt;p&gt;This is the point where Solana identity starts to feel less abstract. In a Web2 app, your identity is usually tied to something recoverable: an email address, a password reset flow, maybe a login provider.&lt;/p&gt;

&lt;p&gt;With a keypair, the private key is the thing that matters.&lt;/p&gt;

&lt;p&gt;If someone has the private key, they can sign transactions for that address. They do not need your password. They do not need your email account. They do not need approval from a backend service.&lt;/p&gt;

&lt;p&gt;For devnet, storing a keypair in a local JSON file is fine. There is no real value at stake. But the same approach would be a serious mistake for mainnet funds or production users.&lt;/p&gt;

&lt;p&gt;Arc 1 made that visible early:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key storage affects security.&lt;/li&gt;
&lt;li&gt;Address reuse affects privacy.&lt;/li&gt;
&lt;li&gt;Signing is how authorization works.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lamports make value precise
&lt;/h2&gt;

&lt;p&gt;Arc 1 also introduced the unit Solana programs actually work with: lamports.&lt;/p&gt;

&lt;p&gt;Wallets usually show balances in SOL because that is easier for humans to read. But Solana code works in lamports because programs need exact whole-number values.&lt;/p&gt;

&lt;p&gt;One SOL is 1,000,000,000 lamports.&lt;/p&gt;

&lt;p&gt;This should feel familiar if you have worked with payments APIs. Stripe does not ask you to send $19.99 as a decimal amount. It asks for 1999 cents, because money should not be handled with floating point arithmetic.&lt;/p&gt;

&lt;p&gt;Solana follows the same basic idea. The network needs every validator to calculate the same result exactly. That means balances, transfers, and fees are represented as integers, not rounded decimal values.&lt;/p&gt;

&lt;p&gt;So there are two units to keep straight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SOL is the readable display unit.&lt;/li&gt;
&lt;li&gt;Lamports are the exact unit used by the network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That small distinction teaches a bigger Solana lesson. What humans see is not always what programs store, sign, or verify. As a developer, you need to know when you are dealing with a friendly display value and when you are dealing with the precise value the network will actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The app gets an address, not your private key
&lt;/h2&gt;

&lt;p&gt;After working with raw keypairs in scripts, we connected a real browser wallet.&lt;/p&gt;

&lt;p&gt;Using the Wallet Standard and @wallet-standard/app, we built a browser app that could detect installed wallets such as Phantom, Solflare, and Backpack. The app requested a connection, then displayed the selected address and its devnet balance.&lt;/p&gt;

&lt;p&gt;That is the important distinction: the app could show the address and read the balance, but it never handled the private key.&lt;/p&gt;

&lt;p&gt;The wallet kept custody of the key. The app only received the public address.&lt;/p&gt;

&lt;p&gt;For Web2 developers, this is closer to using an external identity provider than asking users to type their password into every app. The app delegates key management to the wallet. When it needs proof that the user controls an address, it asks the wallet to sign something.&lt;/p&gt;

&lt;p&gt;But connecting a wallet is not the same as a full login session.&lt;/p&gt;

&lt;p&gt;A wallet connection gives the app an address. It tells the app, “This is the address the user has chosen to share.” It does not automatically prove that the user should stay logged in, access a private account, or perform sensitive actions.&lt;/p&gt;

&lt;p&gt;For that, an app usually needs a separate signing step. The wallet signs a message or transaction, and that signature proves control of the address. The wallet should ask the user before signing anything meaningful.&lt;/p&gt;

&lt;p&gt;That is why real Solana apps should not ask users to paste secret keys into a form. The private key stays in the wallet. The app asks the wallet for addresses and signatures.&lt;/p&gt;

&lt;p&gt;Arc 1 covered both raw keypair management and browser wallet connection because they teach different parts of the same model:&lt;/p&gt;

&lt;p&gt;Raw keypairs show what is happening underneath.&lt;br&gt;
Wallet connections show how users should normally interact with apps.&lt;/p&gt;

&lt;p&gt;If you come from Web2, connecting a wallet can look a bit like “Sign in with Google.”&lt;/p&gt;

&lt;p&gt;Your app does not handle the user’s Google password. The user approves access through Google, and your app receives enough information to recognize them.&lt;/p&gt;

&lt;p&gt;A Solana wallet plays a similar role in the app experience. It holds the user’s keys, asks for approval, and gives the app a public address to work with.&lt;/p&gt;

&lt;p&gt;But the comparison only gets you so far.&lt;/p&gt;

&lt;p&gt;Google is an identity provider. It can reset access, suspend accounts, enforce policies, and sit between the user and the apps they use.&lt;/p&gt;

&lt;p&gt;A non-custodial wallet is different. It manages keys and asks the user to approve signatures, but it cannot recreate a lost private key. It also cannot invalidate a private key that still exists somewhere else.&lt;/p&gt;

&lt;p&gt;That changes the shape of identity.&lt;/p&gt;

&lt;p&gt;In a typical Web2 app, identity often starts with a database row. The app creates a user account, stores profile data, and provides recovery flows if something goes wrong.&lt;/p&gt;

&lt;p&gt;On Solana, the address is the durable identifier. A signature is the proof that someone controls that address.&lt;/p&gt;

&lt;p&gt;Your app can associate data with an address, but it does not own the user’s identity.&lt;/p&gt;

&lt;p&gt;That can feel like losing control if you are used to backend-owned accounts. But it is one of the tradeoffs Solana asks developers to understand. Users can bring the same address to different Solana apps. They can connect, approve, disconnect, and move on.&lt;/p&gt;

&lt;p&gt;That portability is powerful, but it has a privacy cost. If someone reuses the same address across many apps, their activity may be easier to link together.&lt;/p&gt;

&lt;p&gt;That is why the Web2 analogies in Arc 1 are useful, but only up to a point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSH keys help explain keypairs.&lt;/li&gt;
&lt;li&gt;Payments APIs help explain lamports.&lt;/li&gt;
&lt;li&gt;OAuth-style login helps explain wallet connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those comparisons maps perfectly. But each gives Web2 developers a foothold before the Solana model starts to feel natural.&lt;/p&gt;

&lt;h2&gt;
  
  
  There is no ordinary password reset
&lt;/h2&gt;

&lt;p&gt;Arc 1 also introduced one of the harder parts of the Solana mental model:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you lose the private key, there is no ordinary password reset.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In a typical Web2 app, the service controls the account system. That is why it can offer recovery flows. You can reset a password, verify an email address, contact support, or use an identity provider to get back in.&lt;/p&gt;

&lt;p&gt;That convenience comes with a tradeoff. The same service can also lock you out, leak credential data, change the rules, or shut the account down.&lt;/p&gt;

&lt;p&gt;Solana works differently.&lt;/p&gt;

&lt;p&gt;On Solana, control comes from signing. If you can sign with the private key for an address, you control that address. If you cannot sign, the network does not know that you are “really” the owner.&lt;/p&gt;

&lt;p&gt;That makes key storage a real product decision, not just a technical detail.&lt;/p&gt;

&lt;p&gt;Different approaches make different tradeoffs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser wallets are convenient, but connected to everyday devices.&lt;/li&gt;
&lt;li&gt;Hardware wallets add protection, but introduce more friction.&lt;/li&gt;
&lt;li&gt;Custodial services can offer recovery, but someone else holds or manages the keys.&lt;/li&gt;
&lt;li&gt;Multisig tools can share control across multiple people or devices.&lt;/li&gt;
&lt;li&gt;Cold storage can improve security, but is less practical for frequent use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule for real apps is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not ask users to paste secret keys or seed phrases into your app.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Solana app should connect to a wallet and ask for signatures. The wallet keeps the private key. The user approves or rejects the request. The app receives only what it needs.&lt;/p&gt;

&lt;p&gt;Recovery also has to be designed deliberately. It is not a default support flow you get for free. Seed phrases, hardware wallets, multisig setups, and custody providers all exist because key loss, key theft, and shared control are real product problems.&lt;/p&gt;

&lt;p&gt;Once that clicks, self-custody stops sounding like a slogan. It becomes a set of design choices about security, usability, and recovery.&lt;/p&gt;

&lt;p&gt;You are building around a different foundation: control is proven by signatures, not granted by a service.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Arc 1 sets up
&lt;/h2&gt;

&lt;p&gt;By the end of Arc 1, we had worked through the core Solana fundamentals that everything else builds on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generating a keypair in code&lt;/li&gt;
&lt;li&gt;understanding public keys and private keys&lt;/li&gt;
&lt;li&gt;funding an address on devnet&lt;/li&gt;
&lt;li&gt;seeing the difference between an address and account state&lt;/li&gt;
&lt;li&gt;saving and reloading a keypair from a local file&lt;/li&gt;
&lt;li&gt;converting between SOL and lamports&lt;/li&gt;
&lt;li&gt;reading raw lamport balances in logs&lt;/li&gt;
&lt;li&gt;connecting a browser wallet to a web app

&lt;ul&gt;
&lt;li&gt;understanding that connecting a wallet and signing are separate actions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;explaining Solana identity in our own words&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;For Web2 developers, some of this should feel familiar.&lt;/p&gt;

&lt;p&gt;If you have generated an SSH key, you already have a starting point for understanding keypairs. If you have used “Sign in with Google,” you already have a rough analogy for wallet connection. If you have handled money in cents through a payments API, you already understand why Solana uses lamports instead of decimal SOL values in code.&lt;/p&gt;

&lt;p&gt;None of those comparisons is perfect. But they give us useful footholds.&lt;/p&gt;

&lt;p&gt;Want to see the full thing? Check out the &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana daily challenge series&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>learning</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Epoch 2: From Reading to Creating</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Mon, 18 May 2026 12:18:24 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/epoch-2-from-reading-to-creating-4g2p</link>
      <guid>https://dev.to/100daysofsolana/epoch-2-from-reading-to-creating-4g2p</guid>
      <description>&lt;p&gt;Epoch 1 was about learning how Solana works: wallets, accounts, transactions, balances, and on-chain state.&lt;/p&gt;

&lt;p&gt;Epoch 2 turns that foundation into something you can build with. You’ll create tokens, add metadata, experiment with fees and transfer rules, mint NFTs, and see how assets can carry behavior of their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "programmable asset" actually means
&lt;/h2&gt;

&lt;p&gt;We first met SOL pretty early in Epoch 1. It is the currency used on Solana to pay fees, fund accounts, and it gave you a clean first lap around transactions and Explorer.&lt;/p&gt;

&lt;p&gt;So it would be easy to think of Solana mainly as a network for moving SOL around.&lt;/p&gt;

&lt;p&gt;But Solana also lets you create assets whose rules are part of the asset itself: who can create more, who can hold them, whether they can move, whether transfers take a fee, and what metadata other apps can read.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc3i2kmwu7bo5r2tpf9k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkc3i2kmwu7bo5r2tpf9k.jpg" alt="Abstract teal and green illustration showing simple token-like discs flowing into a larger network of connected digital panels, representing basic assets becoming programmable assets with metadata, permissions, and rules." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That might sound like a lot, but the next four weeks of 100 Days of Solana break it down step by step.&lt;/p&gt;

&lt;p&gt;If you've built Web2 products, you've probably worked with things users can earn, hold, spend, unlock, or display: loyalty points, in-app credits, course badges, gaming currencies, access passes, reputation scores.&lt;/p&gt;

&lt;p&gt;In a traditional app, those things live in your database. Your backend decides how they are created, who they belong to, whether they can move between users, and what they can be used for.&lt;/p&gt;

&lt;p&gt;On Solana, some of those rules can move into the asset itself.&lt;/p&gt;

&lt;p&gt;To make that work, Solana splits those ideas across a few building blocks. A mint describes the asset. Token accounts record who holds it. Authorities decide who can create more, freeze accounts, update metadata, or collect fees.&lt;/p&gt;

&lt;p&gt;A basic token can answer the first question: who holds how much?&lt;/p&gt;

&lt;p&gt;But product ideas usually need more than that. What is this asset called? Can another app recognize it? Can it be transferred? Should transfers take a fee? Should a new holder be approved before they can use it?&lt;/p&gt;

&lt;p&gt;Token-2022 is Solana’s token program for that next layer. It adds optional extensions, which are predefined features for metadata, fees, frozen accounts, non-transferability, interest-bearing display amounts, and other asset behaviors.&lt;/p&gt;

&lt;p&gt;Some of those rules are configured on the mint. Some are tracked on token accounts. But the important shift is this: the rules are enforced by the token program, not only by your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arc 5: A token and then a name for it
&lt;/h2&gt;

&lt;p&gt;The first arc of Epoch 2 starts with the simplest asset you can create: a token on devnet.&lt;/p&gt;

&lt;p&gt;You create the mint. You issue some supply to your own wallet. You open Explorer and there it is: an asset you created, controlled by your wallet, sitting on a public network anyone can inspect.&lt;/p&gt;

&lt;p&gt;At first, though, it is still pretty bare.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkg44qa9igyhvr1zwo62.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkg44qa9igyhvr1zwo62.jpg" alt="Abstract teal and green illustration showing a simple token becoming a recognizable asset with metadata, then being blocked from transfer by a lock, representing non-transferable token rules." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A mint address is useful to a program but it does not mean much to a person. It is just a long base58 string. So the next step is metadata: a name, a symbol, and a URI that can point to richer details such as an image and traits.&lt;/p&gt;

&lt;p&gt;That is when the token starts to feel less like a raw account and more like something you can work with.&lt;/p&gt;

&lt;p&gt;This first arc of Epoch 2 also introduces a more important design choice: should this asset be transferable?&lt;/p&gt;

&lt;p&gt;Not every asset should move freely. A certificate of completion, a verified badge, or a reputation score should belong to the person who earned it. In this arc, you will create a non-transferable token and try to send it to another wallet. And you'll see that the token program refuses the transfer because the rule is part of the asset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arc 6: Rules the network enforces for you
&lt;/h2&gt;

&lt;p&gt;Arc 6 is where Token-2022 starts to matter.&lt;/p&gt;

&lt;p&gt;You will create an interest-bearing token: a mint with an interest rate in its configuration. The raw balance does not change, but compatible wallets and clients can calculate a display amount that grows over time.&lt;/p&gt;

&lt;p&gt;In a Web2 app, that kind of behavior might need timestamps, background jobs, database updates, and careful UI logic. With Token-2022, the rate is part of the token configuration, and compatible clients use it to calculate the displayed balance.&lt;/p&gt;

&lt;p&gt;Token-2022 calls these optional features extensions. An extension is a built-in capability you add to a token: metadata, transfer fees, interest-bearing display amounts, frozen accounts, non-transferability, and so on.&lt;/p&gt;

&lt;p&gt;In Arc 6, you start combining them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcr11149vsg008mhpbuc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcr11149vsg008mhpbuc.jpg" alt="Abstract teal and green illustration showing a central token connected to modular panels for metadata, fees, interest, frozen accounts, transfer restrictions, and credentials, representing Token-2022 extensions as built-in asset rules." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A token might have metadata, a transfer fee, an interest rate, or other built-in rules. Some extensions can work together; others cannot. That means token design starts to feel a little like schema design: you need to decide what the asset should be able to do before you create it, because some choices are permanent and others are hard to change later.&lt;/p&gt;

&lt;p&gt;The arc also introduces default frozen accounts. This means new token accounts start frozen and cannot be used until a freeze authority thaws them.&lt;/p&gt;

&lt;p&gt;That gives you a simple version of a gated asset flow. Not every holder is automatically eligible. Someone has to approve the account before it can transact.&lt;/p&gt;

&lt;p&gt;Finally, you will combine non-transferable tokens with permanent delegates to model a revocable credential. The holder cannot transfer it to someone else, but a designated authority can still burn it.&lt;/p&gt;

&lt;p&gt;That gives you something close to: this credential can be issued and revoked, but it cannot be passed on.&lt;/p&gt;

&lt;p&gt;You could model that in a database, but the rule would live inside your application. Here, the rule is part of how the asset works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arc 7: NFTs use the same building blocks
&lt;/h2&gt;

&lt;p&gt;Arc 7 moves from fungible tokens into NFTs.&lt;/p&gt;

&lt;p&gt;The useful surprise is that NFTs are not a completely separate technical world. At their simplest, they use the same basic ingredients you will have already covered up to that point: a mint, token accounts, metadata, and authority.&lt;/p&gt;

&lt;p&gt;The difference is uniqueness.&lt;/p&gt;

&lt;p&gt;A normal token is designed so many people can hold units of the same asset. An NFT is designed so there is only one of that asset. One token. One current owner. One piece of metadata that explains what it represents.&lt;/p&gt;

&lt;p&gt;You will build the simplest version first: a unique asset on devnet that only your wallet owns. Then you will add the things people expect from an NFT: a name, an image URI, traits, and membership in a collection.&lt;/p&gt;

&lt;p&gt;That is where metadata matters again. The NFT stops being just a unique on-chain asset and starts becoming something wallets, explorers, and other apps can present in a recognizable way.&lt;/p&gt;

&lt;p&gt;The most satisfying moment in this arc comes when you update it.&lt;/p&gt;

&lt;p&gt;You change the metadata on your live devnet NFT, then refresh a compatible wallet or explorer. The image changes. The name changes. The transaction has a signature anyone can audit, and the updated state is visible to compatible tools that read the standard.&lt;/p&gt;

&lt;p&gt;You are not just editing a file or changing a row in your own database. You are changing asset state on a public network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arc 8: Assets that carry their own behavior
&lt;/h2&gt;

&lt;p&gt;Arc 8 brings the whole epoch together.&lt;/p&gt;

&lt;p&gt;You will create a fee-bearing token with a 1% transfer fee. Send 100 tokens to another wallet, and the recipient receives 99. The remaining 1 is withheld automatically according to the rules configured on the token.&lt;/p&gt;

&lt;p&gt;That is the important part: your application did not calculate the fee, intercept the transfer, or run a background job. The token program enforced the rule.&lt;/p&gt;

&lt;p&gt;Then you will run the rest of the lifecycle. You will inspect the withheld fees, harvest them from token accounts up to the mint, and withdraw them using the withdraw authority.&lt;/p&gt;

&lt;p&gt;That gives you the full pattern: transfer, withhold, harvest, withdraw.&lt;/p&gt;

&lt;p&gt;From there, the arc pulls together the ideas from the previous weeks. You will stack interest behavior on top of transfer fees. You will audit token mints to understand which rules are configured. You will revisit non-transferable tokens now that you have seen how fees, metadata, frozen accounts, and authorities all fit together.&lt;/p&gt;

&lt;p&gt;By this point, Token-2022 should feel less like a list of features and more like a design toolkit.&lt;/p&gt;

&lt;p&gt;The point is not that every token should use every extension. Most should not. The point is that you now have a vocabulary for asset behavior: fees, identity, display logic, access control, transfer restrictions, and revocation.&lt;/p&gt;

&lt;p&gt;You can design those behaviors without writing a custom Solana program from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you'll walk away with
&lt;/h2&gt;

&lt;p&gt;By the end of Epoch 2, you’ll have a small portfolio of real Solana experiments on devnet.&lt;/p&gt;

&lt;p&gt;Custom tokens with metadata. Transfer fees configured and inspected. Interest-bearing display amounts. Frozen accounts thawed by an authority. Non-transferable assets that refuse to move. A 1-of-1 NFT minted, added to a collection, updated, and verified on-chain. A fee-bearing token whose withheld fees you harvested and withdrew yourself.&lt;/p&gt;

&lt;p&gt;You’ll also have written about what you built.&lt;/p&gt;

&lt;p&gt;And that's because explaining a concept in your own words is one of the best ways to find out whether you actually understand it.&lt;/p&gt;

&lt;p&gt;So, let's get into it!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join us on the 100 Days of Solana journey.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Solana Writing Challenge: End of Epoch 1</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 15 May 2026 09:45:48 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/solana-writing-challenge-end-of-epoch-1-1jl9</link>
      <guid>https://dev.to/100daysofsolana/solana-writing-challenge-end-of-epoch-1-1jl9</guid>
      <description>&lt;p&gt;If you’ve been taking part in &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; so far, you’ve probably discovered that Web3 isn’t as mysterious as it first appears.&lt;/p&gt;

&lt;p&gt;And now it's your turn to help other web and mobile developers make the same realization.&lt;/p&gt;

&lt;p&gt;To celebrate the end of Epoch 1, where we looked at Solana fundamentals, we're running a week-long &lt;strong&gt;100 Days of Solana Writing Challenge&lt;/strong&gt;. The focus is simple: write a DEV post that helps another developer understand, build, debug, or try something in Solana.&lt;/p&gt;

&lt;p&gt;You don’t need to be an expert. You don’t need to write the definitive guide to anything. The best post might be a small explanation, a useful analogy, a bug you fixed, a project you built, or the moment a concept finally clicked.&lt;/p&gt;

&lt;p&gt;What matters is that another developer can read it and come away thinking: “Okay, that makes more sense now.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Prizes
&lt;/h2&gt;

&lt;p&gt;And, of course, we have prizes.&lt;/p&gt;

&lt;p&gt;We’ll award &lt;strong&gt;$500&lt;/strong&gt; prizes in three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Most helpful post:&lt;/strong&gt; for the post that does the best job of helping another developer understand, build, debug, or try something in Solana.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most read, on-topic post:&lt;/strong&gt; for the eligible post with the most reads during the challenge period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best posting streak:&lt;/strong&gt; for the strongest set of &lt;strong&gt;four high-quality, helpful posts&lt;/strong&gt; published during the challenge week.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also have &lt;strong&gt;ten DEV++ subscriptions&lt;/strong&gt; for notable submissions that stand out for clarity, originality, practical value, or community spirit.&lt;/p&gt;

&lt;p&gt;To be eligible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your post must be published on DEV between &lt;strong&gt;15 May and 22 May&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Your post must include the &lt;a href="https://dev.to/100daysofsolana"&gt;100daysofsolana&lt;/a&gt; tag&lt;/li&gt;
&lt;li&gt;Your post must be relevant to Solana or your 100 Days of Solana learning journey&lt;/li&gt;
&lt;li&gt;Your post must be written to help other developers, not just to announce participation&lt;/li&gt;
&lt;li&gt;You must be registered for the &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana challenge&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://mlh.link/solanawrite-epoch1" rel="noopener noreferrer"&gt;Use our template to get started&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions?
&lt;/h2&gt;

&lt;p&gt;Have questions about the challenge or whether your post idea fits?&lt;/p&gt;

&lt;p&gt;Ask in the &lt;strong&gt;100 Days of Solana Discord channel&lt;/strong&gt;. We’re happy to help you find an angle, shape an idea, or turn something you learned into a useful DEV post.&lt;/p&gt;

&lt;p&gt;If you're having trouble joining the Discord, &lt;a href="mailto:solana-100@mlh.io"&gt;email us&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>learning</category>
      <category>writing</category>
    </item>
    <item>
      <title>Arc 3 Catch-Up: Solana Transactions Explained for Web2 Developers</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Mon, 11 May 2026 12:32:11 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/arc-3-catch-up-solana-transactions-explained-for-web2-developers-4f5i</link>
      <guid>https://dev.to/100daysofsolana/arc-3-catch-up-solana-transactions-explained-for-web2-developers-4f5i</guid>
      <description>&lt;p&gt;Arc 3 of &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; was the arc where Solana stopped being something we &lt;em&gt;read from&lt;/em&gt; and started being something we &lt;em&gt;wrote to&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Across the arc, we inspected transactions, sent SOL on devnet, built a transfer tool, tracked confirmation, and deliberately triggered failures. That shift changes how everything else fits together: accounts, programs, fees, confirmation, errors, and application state.&lt;/p&gt;

&lt;p&gt;They all hang off one idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Solana transaction is a signed request to change on-chain state.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Reading is pretty much like Web2. Writing is not.
&lt;/h2&gt;

&lt;p&gt;Reading from Solana maps neatly onto things most Web2 developers already do. You ask for a balance. You fetch account data. You look up a transaction. The network answers.&lt;/p&gt;

&lt;p&gt;Writing is different. It is closer to making a &lt;code&gt;POST&lt;/code&gt; request that changes production data, except there is no single server receiving it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwetpmub28c6vp6eabxyh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwetpmub28c6vp6eabxyh.jpg" alt="Infographic titled “From Read to Write” showing the Arc 3 mental model for 100 Days of Solana. The left panel, labeled “READ,” lists getBalance(), fetch account data, look up transaction, and network answers. An arrow points to the right panel, labeled “WRITE,” which lists build transaction, sign transaction, submit to network, and state changes." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a Web2 app, a write usually follows a familiar path: take some input, check authorization, run logic, change state, return a result. Solana has the same broad shape, but the mechanics are different. To change state, you create a transaction: a signed, time-limited message that says which accounts are involved, which program should run, and what instruction that program should execute.&lt;/p&gt;

&lt;p&gt;That is why a SOL transfer is such a useful first write. It is small enough to understand, but it contains the ingredients that keep showing up across Solana development: accounts, signatures, instructions, fees, confirmation, and failure modes.&lt;/p&gt;

&lt;p&gt;Calling a program, minting a token, swapping an asset, or updating application state all build on the same foundation. The details change, but the shape remains familiar: prepare the instruction, sign the transaction, submit it to the network, and handle the result.&lt;/p&gt;

&lt;p&gt;That was the real purpose of Arc 3: not just sending SOL, but learning Solana’s write path.&lt;/p&gt;

&lt;h2&gt;
  
  
  The HTTP analogy helps, until it doesn't
&lt;/h2&gt;

&lt;p&gt;If you're coming from a Web2 background, the easiest on-ramp is to think of a Solana transaction as something like an HTTP request. At first, the comparison is useful. A transaction has structure, travels over the network, carries authorization, asks another system to do something, and produces a result you can inspect afterwards.&lt;/p&gt;

&lt;p&gt;But it breaks down once you look closer.&lt;/p&gt;

&lt;p&gt;An HTTP request is handled by an application server or backend service. A Solana transaction is validated by a network.&lt;/p&gt;

&lt;p&gt;An HTTP request usually authenticates with a cookie, API key, or bearer token. A Solana transaction is signed with a cryptographic keypair before it leaves your machine.&lt;/p&gt;

&lt;p&gt;And unlike a chain of separate API calls, a Solana transaction is atomic. If one instruction fails, the whole transaction fails. You do not get partial success where step two worked but step three did not.&lt;/p&gt;

&lt;p&gt;There is also a freshness constraint. Every transaction includes a recent blockhash, which means it is only valid for a short window before the network refuses it.&lt;/p&gt;

&lt;p&gt;So maybe it's better to think of it like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Solana transaction is a signed message that says: “Run these instructions, against these accounts, before this short validity window closes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That makes it different from a normal API request. It is authorized before it is sent, it only works for a short window, and it succeeds or fails as one unit. On Solana, that short window is enforced with a recent blockhash, which stops old transactions from being replayed forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually inside a transaction
&lt;/h2&gt;

&lt;p&gt;Transactions can feel abstract because most of the time we only see the receipt: a signature, a success message, or an Explorer link.&lt;/p&gt;

&lt;p&gt;But a transaction is not just a receipt. It is the actual message sent to the network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7qopgmw5gpi8h9u5ll.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7qopgmw5gpi8h9u5ll.jpg" alt="Infographic titled “What’s Inside a Transaction?” showing the anatomy of a Solana transaction. A central transaction card lists four parts: signatures, which show who authorized the transaction; account keys, which show which accounts are touched; recent blockhash, used as a freshness check; and instructions, which define what should run. A side note explains that account order matters because the header uses position to determine signer, writable, and read-only permissions." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have ever opened your browser’s network tab and inspected a request, the idea is similar. You stop seeing “the button worked” and start seeing the parts underneath: who sent the request, what data went with it, what endpoint it hit, and what the server returned.&lt;/p&gt;

&lt;p&gt;Solana gives us the same kind of visibility. Using &lt;code&gt;solana confirm -v&lt;/code&gt; and Solana Explorer, you can open up a transaction and see the main pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signatures&lt;/strong&gt;: proof of who authorized the transaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Account keys&lt;/strong&gt;: the accounts the transaction reads from or writes to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recent blockhash&lt;/strong&gt;: the freshness check that helps stop old transactions being replayed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instructions&lt;/strong&gt;: the operations the transaction asks a program to run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The account list is not just a bag of addresses. Its ordering matters. The transaction header uses position to work out which accounts are signers, which are writable, and which are read-only.&lt;/p&gt;

&lt;p&gt;You do not need to memorize the whole transaction format before building anything. The important thing is to see that a transaction is structured data, not magic.&lt;/p&gt;

&lt;p&gt;It has authorization. It has inputs. It has instructions. It has constraints.&lt;/p&gt;

&lt;p&gt;Once you have seen that structure once, a transaction stops feeling like a mysterious blockchain blob and starts looking more like something a developer can inspect, reason about, and debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a simple SOL transfer teaches so much
&lt;/h2&gt;

&lt;p&gt;A SOL transfer is a good first write because it is small enough to follow, but complete enough to show the full pattern.&lt;/p&gt;

&lt;p&gt;In Web2 terms, it is like starting with the simplest useful endpoint: &lt;code&gt;POST /transfer&lt;/code&gt;. You are not building the whole application yet, but you are exercising the important pieces of a write path.&lt;/p&gt;

&lt;p&gt;A single SOL transfer includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;fee payer&lt;/strong&gt;, who pays for the transaction&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;source account&lt;/strong&gt;, where the SOL comes from&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;recipient public key&lt;/strong&gt;, where the SOL is going&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;amount&lt;/strong&gt;, measured in lamports&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;System Program instruction&lt;/strong&gt;, which performs the transfer&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;signature&lt;/strong&gt;, which authorizes it&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;Explorer record&lt;/strong&gt;, which proves what happened&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a lot of Solana in one action. It shows accounts, signatures, instructions, fees, confirmation, and verification without needing to write a custom program first.&lt;/p&gt;

&lt;p&gt;It also introduces an important idea for Arc 4: a public key can exist before there is an on-chain account for it. When SOL lands at a brand-new recipient, the System Program can create the account state the network will track from that point on.&lt;/p&gt;

&lt;p&gt;That is the first hint that an “account” on Solana is not just another word for “wallet.” It is where state lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping a transfer in a tool
&lt;/h2&gt;

&lt;p&gt;Running a transfer from the CLI proves the basic idea. Turning it into a tool makes the pattern reusable.&lt;/p&gt;

&lt;p&gt;In Arc 3, that tool was a small Node.js command-line app built with &lt;code&gt;@solana/kit&lt;/code&gt;, the newer Solana JavaScript SDK. You will still see plenty of tutorials using &lt;code&gt;@solana/web3.js&lt;/code&gt;, so it is useful to know both names.&lt;/p&gt;

&lt;p&gt;The tool did the same things a good wrapper around any important operation should do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;accept a recipient and amount&lt;/li&gt;
&lt;li&gt;validate the input&lt;/li&gt;
&lt;li&gt;check the sender’s balance&lt;/li&gt;
&lt;li&gt;build and sign the transaction&lt;/li&gt;
&lt;li&gt;submit it to devnet&lt;/li&gt;
&lt;li&gt;print an Explorer link as a receipt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That shape should feel familiar. If you have ever wrapped a payment API, built an internal CLI, or added guardrails around a production write, you already know the pattern: validate, prepare, execute, return something the user can trust.&lt;/p&gt;

&lt;p&gt;The difference is what sits underneath.&lt;/p&gt;

&lt;p&gt;This tool was not sending a normal API request to one company’s backend. It was creating a signed transaction and submitting it to a decentralized network.&lt;/p&gt;

&lt;p&gt;That was the practical bridge in Arc 3: moving from “I understand what a transaction is” to “I can build something that uses one.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmation is a product decision
&lt;/h2&gt;

&lt;p&gt;One of the most useful realizations in Arc 3 was that “success” on Solana is not a single moment.&lt;/p&gt;

&lt;p&gt;A transaction moves through commitment levels: &lt;strong&gt;processed&lt;/strong&gt;, &lt;strong&gt;confirmed&lt;/strong&gt;, and &lt;strong&gt;finalized&lt;/strong&gt;. Each stage tells you something different about how far the transaction has moved through the network.&lt;/p&gt;

&lt;p&gt;For developers, that is not just blockchain terminology. It affects the product experience.&lt;/p&gt;

&lt;p&gt;If you are building a wallet, payment flow, marketplace, game, or developer tool, you have to decide what the user sees after they click the button.&lt;/p&gt;

&lt;p&gt;Do you show “pending” as soon as the transaction is submitted? Do you show success once it is confirmed? Do you wait for finalization before enabling the next action? Do you include an Explorer link so the user can verify the result themselves?&lt;/p&gt;

&lt;p&gt;A signature is a receipt, but not an explanation. Good tools show progress.&lt;/p&gt;

&lt;p&gt;That is why the Arc 3 tool added confirmation feedback. It helped turn the gap between “sent” and “settled” into something visible, understandable, and useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failed transactions are still real transactions
&lt;/h2&gt;

&lt;p&gt;The most useful thing we did in Arc 3 was break things on purpose.&lt;/p&gt;

&lt;p&gt;We tried sending from an empty wallet. We tried sending more SOL than the wallet held. We skipped preflight checks to push a doomed transaction onto the network anyway. Then we inspected what came back: CLI output, Explorer pages, logs, and transaction metadata.&lt;/p&gt;

&lt;p&gt;The lesson is important for Web2 developers: on Solana, a failed transaction is still a real transaction attempt.&lt;/p&gt;

&lt;p&gt;If signature verification succeeds, the transaction can still pay the base signature fee — 5,000 lamports per signature, before any optional priority fee — even if execution later fails. Validators still did work. The chain still attempted the change. The intended state change failed, but the fee was still real.&lt;/p&gt;

&lt;p&gt;That reframes error handling.&lt;/p&gt;

&lt;p&gt;You validate before signing. You simulate before submitting. You read structured errors like &lt;code&gt;meta.err&lt;/code&gt; and &lt;code&gt;InstructionError&lt;/code&gt;. You watch for blockhash expiry. You design flows that avoid wasting user fees on failures you could have caught earlier.&lt;/p&gt;

&lt;p&gt;In Web2, error handling is mostly about user experience and reliability. On Solana, it is also part of the cost model.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Arc 3 sets up
&lt;/h2&gt;

&lt;p&gt;Strip Arc 3 back to its core and the main ideas are clear:&lt;/p&gt;

&lt;p&gt;Transactions are how Solana changes state. They are signed before submission. They contain instructions. Those instructions act on accounts. Confirmation happens in stages. Failed transactions can still cost money.&lt;/p&gt;

&lt;p&gt;That leads directly to the next question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If transactions change state, where does that state live?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On Solana, the answer is accounts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowqfql0d8qeg06egyi13.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowqfql0d8qeg06egyi13.jpg" alt="Infographic titled “Where Does State Live?” with an “Arc 4 Preview” label. A card on the left says “Transactions change state,” with an arrow pointing to a larger card labeled “Accounts.” The accounts card lists three ideas: store state, define ownership, and hold data. A caption explains that Arc 4 explores how state is stored, who owns it, and how programs interact with it." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is where Arc 4 goes next: how state is stored, who owns it, and how programs interact with it.&lt;/p&gt;

&lt;p&gt;Use this post as the map, revisit the Arc 3 challenges whenever you want the hands-on version, and jump into Arc 4 from here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join us on the 100 Days of Solana journey!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Best AI Agent Frameworks for Production in 2026 (OpenClaw + Gemini)</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Thu, 07 May 2026 12:18:03 +0000</pubDate>
      <link>https://dev.to/matthewrevell/best-ai-agent-frameworks-for-production-in-2026-openclaw-gemini-30o7</link>
      <guid>https://dev.to/matthewrevell/best-ai-agent-frameworks-for-production-in-2026-openclaw-gemini-30o7</guid>
      <description>&lt;h2&gt;
  
  
  TLDR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenClaw + an agent framework + Gemini is a practical default production architecture for long-context, tool-heavy agents.&lt;/li&gt;
&lt;li&gt;Gemini 3.1 Pro is OpenClaw's recommended default model (&lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt;), mostly for its 1M token context window and native tool-use support.&lt;/li&gt;
&lt;li&gt;LangChain/LangGraph is one of the most widely used combinations for Gemini + OpenClaw workflows in production.&lt;/li&gt;
&lt;li&gt;Frameworks covered: LangChain, LangGraph, CrewAI, AutoGen, Google ADK, SmolAgents.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;A code-review agent fetches a pull request, analyzes three files, flags an issue, then loops back to re-examine the diff. Somewhere between steps two and three, tool call history drops out of context. The agent hallucinates a fix or stalls. The reasoning step succeeded. The state didn't persist.&lt;/p&gt;

&lt;p&gt;These failures are rarely dramatic. They show up as lost context, repeated tool calls, inconsistent state between steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.openclaw.ai" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; runs execution and manages tool runtimes. Agent frameworks control orchestration and workflow logic. Gemini provides reasoning. The question is which framework connects those layers without introducing new points of failure. Other models like Claude and GPT-4 may outperform Gemini in raw reasoning depth or autonomous decision-making, but for OpenClaw's workload profile (large codebases, multi-step tool execution, long sessions), Gemini's 1M token context window means the model can often hold an entire agent session in memory without chunking tricks.&lt;/p&gt;

&lt;p&gt;Recent Gemini API improvements preserve tool call history and responses across steps. That single change helps address a major source of agent failure in multi-step loops. This guide breaks down which frameworks fit which workflows, with Gemini as the LLM backbone and &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw as the execution environment&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is an AI Agent Framework?
&lt;/h2&gt;

&lt;p&gt;An agent framework is the software layer that orchestrates LLM calls, tool invocations, and memory management. It sits between the execution environment and the reasoning model, managing state, branching, retries, and multi-agent coordination.&lt;/p&gt;

&lt;p&gt;Three trends define the 2026 landscape. First, Gemini API improvements have reduced tool call history loss in multi-step workflows, shifting some state management burden away from frameworks. Second, MCP and A2A protocols are gaining adoption, giving agents standardized ways to interoperate across frameworks. Third, &lt;a href="https://www.langchain.com/blog/langsmith-is-now-available-in-google-cloud-marketplace" rel="noopener noreferrer"&gt;LangSmith is now available on Google Cloud Marketplace&lt;/a&gt;, giving production teams observability tooling on the same cloud infrastructure where many Gemini workloads already run.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Choose: A Quick Decision Heuristic
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simple or single-task agents&lt;/strong&gt; → SmolAgents, or skip the framework entirely&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast role-based prototyping&lt;/strong&gt; → CrewAI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational multi-agent loops&lt;/strong&gt; → AutoGen&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex stateful or cyclical workflows&lt;/strong&gt; → LangGraph&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google-native stack with first-party tooling&lt;/strong&gt; → Google ADK&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production workflows needing governance and observability&lt;/strong&gt; → LangChain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, framework choice usually comes down to failure modes: use LangGraph when state consistency matters, CrewAI when speed of iteration matters, and AutoGen when behavior emerges from interaction rather than control flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Concrete Example: Code-Review Agent with OpenClaw + LangGraph + Gemini
&lt;/h2&gt;

&lt;p&gt;Consider a code-review agent that monitors a repository for new pull requests. OpenClaw runs the agent, manages &lt;a href="https://docs.openclaw.ai/tools-and-plugins" rel="noopener noreferrer"&gt;tool access&lt;/a&gt; (GitHub API, linter, static analysis), and handles auth. LangGraph defines the workflow as a graph with nodes for fetching the PR diff, analyzing each changed file, flagging issues, and conditionally looping back if the analysis is incomplete.&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro powers reasoning at each node. Because OpenClaw workflows often involve large codebases and multi-step tool execution, Gemini's 1M token context window means the full diff, linter output, and prior analysis can stay in a single session without chunking or state rehydration. LangGraph's cycle support enables a human-in-the-loop checkpoint: a reviewer approves or rejects flagged issues before the agent posts comments.&lt;/p&gt;

&lt;p&gt;When the agent encounters an ambiguous diff (a refactor that changes function signatures across multiple files, for example), LangGraph's cycle support means it can loop back to re-examine surrounding context rather than failing silently or hallucinating an interpretation. With LangSmith connected, each node's inputs, outputs, and latency are traceable. Debugging a misbehaving review step stays straightforward even when the graph has cycled multiple times.&lt;/p&gt;

&lt;p&gt;You end up with a stateful, auditable agent that doesn't lose context between steps. The framework manages the graph. OpenClaw manages execution. Gemini powers reasoning.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Best AI Agent Frameworks for OpenClaw in 2026
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. LangChain + LangGraph
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;LangChain is commonly used in production setups for Gemini + OpenClaw workflows. The team updated their Google GenAI integration using Google's consolidated Generative AI SDK, accessible through the &lt;code&gt;langchain-google-genai&lt;/code&gt; package and the &lt;code&gt;ChatGoogleGenerativeAI&lt;/code&gt; class. LangGraph adds stateful, cyclical workflow graphs on top of LangChain's chain primitives.&lt;/p&gt;

&lt;p&gt;LangSmith, LangChain's observability and tracing platform, became available on Google Cloud Marketplace in February 2026. &lt;a href="https://www.langchain.com/blog/introducing-agent-builder-template-library" rel="noopener noreferrer"&gt;Agent Builder templates launched in January 2026&lt;/a&gt; with native support for Gemini models, lowering the barrier to production agent builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Production workflows requiring governance, audit logs, and complex state management with Gemini as the reasoning layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Updated Gemini integration (langchain-google-genai)&lt;/strong&gt; lets you use both Gemini API and Vertex AI through a single package, with &lt;code&gt;createDeepAgent&lt;/code&gt; supporting &lt;code&gt;google_genai:gemini-3-flash-preview&lt;/code&gt; as a model string&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;500+ integrations&lt;/strong&gt; cover vector stores (Pinecone, FAISS), document loaders, and retrieval chains out of the box&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangSmith on Google Cloud Marketplace&lt;/strong&gt; gives production teams observability without leaving their existing cloud infrastructure. LangSmith traces at the node level in LangGraph graphs, which matters when agents loop or branch unexpectedly and you need to pinpoint where behavior diverged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cycle and branch support&lt;/strong&gt; in LangGraph means agents can loop, retry, and conditionally fork, not just execute linear DAGs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache-2.0 license&lt;/strong&gt; with built-in audit log support makes LangChain viable for regulated environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Steeper learning curve&lt;/strong&gt; than CrewAI or SmolAgents, particularly around LangGraph's graph-based mental model. The full stack has real setup overhead; teams new to graph-based workflows should expect several days before reaching productive iteration speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verbose abstractions&lt;/strong&gt; can slow early iteration when you're still validating whether the agent concept works at all. Swapping a single chain component triggered cascading type errors across three abstraction layers, turning a five-minute experiment into an hour of debugging imports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (Apache-2.0). LangSmith has paid tiers for production tracing and observability.&lt;/p&gt;

&lt;p&gt;Something to consider: Google Cloud's Vertex AI SDK &amp;amp;quot;Generative AI module&amp;amp;quot; is deprecated, with removal scheduled for June 24, 2026. If you're on the old SDK, migrate to &lt;code&gt;langchain-google-genai&lt;/code&gt; before that deadline.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. CrewAI
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;If you need a working multi-agent prototype by end of day, CrewAI is probably where you start. Define agent &amp;amp;quot;crews&amp;amp;quot; with distinct roles (researcher, writer, coder), assign them tasks, and CrewAI handles delegation. Gemini integration works through &lt;code&gt;langchain-google-genai&lt;/code&gt; or direct Gemini API calls. Version 0.5.2 is stable as of 2026 under the MIT license.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Fast prototyping of role-based agent teams with Gemini as the shared LLM backbone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A relatively small amount of code&lt;/strong&gt; to define a working multi-agent crew. Genuinely the fastest path from idea to running prototype.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower cost-per-query&lt;/strong&gt; than AutoGen according to some third-party benchmarks, though the gap varies by workload&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intuitive role abstraction&lt;/strong&gt; maps well to OpenClaw's task model, where distinct tools and responsibilities already exist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fewer third-party integrations&lt;/strong&gt; than LangChain (roughly an order of magnitude fewer), which limits extensibility for complex pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No native RBAC&lt;/strong&gt; and only basic streaming support, which matters once you move beyond prototyping into production with access control requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No built-in persistent memory store.&lt;/strong&gt; Agents share context through task outputs passed sequentially. This works for short workflows but falls apart in long-running sessions where accumulated state matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based abstraction complicates unit testing.&lt;/strong&gt; CrewAI's role model is intuitive until you need to test a single agent's decisions in isolation. At that point, the crew's delegation logic becomes something you have to mock around, and the mocking gets ugly fast once you have three or more agents passing context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Microsoft AutoGen
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;Where most frameworks have you define explicit workflows, AutoGen takes a different approach: agents communicate through message passing, and complex behaviors emerge from dialogue patterns. Python and .NET are both supported. Version 0.4.5 is current, licensed under MIT.&lt;/p&gt;

&lt;p&gt;Gemini integration is available via adapters or OpenAI-compatible layers in some setups, but Gemini is not a natively supported first-class model in AutoGen's SDK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Conversational agent loops and research automation workflows where emergent multi-agent behavior is the goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Emergent multi-agent behaviors&lt;/strong&gt; arise naturally from AutoGen's conversational design, which suits exploratory and research-oriented workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python and .NET dual support&lt;/strong&gt; broadens team compatibility when not everyone writes Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active development community&lt;/strong&gt; with strong representation in academic and research use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Higher token usage per query&lt;/strong&gt; than LangChain-based approaches, based on directional signals from third-party benchmarks. The conversational loop model also makes it harder to predict token costs at scale, since back-and-forth exchange counts vary per run. Budget for 2-3x your initial estimates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2025 API shifts broke portions of legacy code&lt;/strong&gt;, documented across &lt;a href="https://github.com/microsoft/autogen" rel="noopener noreferrer"&gt;GitHub issues&lt;/a&gt;, which creates real migration risk for existing projects. If you built on AutoGen before 0.4, expect to rewrite, not refactor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini requires adapter layers&lt;/strong&gt;, adding a failure surface compared to frameworks with native Gemini API support. Adapter mismatches can silently drop tool call metadata, the kind of bug you don't catch until your agent starts repeating itself three steps into a loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited built-in observability.&lt;/strong&gt; AutoGen lacks tracing comparable to LangSmith. Production debugging typically requires custom logging infrastructure, which adds engineering overhead that teams consistently underestimate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Google ADK (Agent Development Kit)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;Google ADK is the only framework here that talks to the Gemini API without any adapter layer. It supports MCP and A2A protocols for agent interoperability, which can be useful if you're planning for multi-agent communication across framework boundaries. The framework is still emerging, though, with a smaller community than LangChain or CrewAI and fewer production deployments to learn from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers building on a Google-native stack who want first-party tooling and protocol-level interoperability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Gemini API support&lt;/strong&gt; eliminates the adapter layer entirely, reducing the number of things that can break between your code and the model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP/A2A protocol support&lt;/strong&gt; enables cross-agent interoperability as these protocols gain adoption. Concretely, agents built with ADK can communicate with agents built on LangGraph, CrewAI, or custom setups, so you're not locked into a single framework as your system grows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roadmap alignment with Gemini&lt;/strong&gt; means updates tend to track Gemini API releases closely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smaller community and documentation&lt;/strong&gt; compared to LangChain or CrewAI. When you hit an edge case, you're often reading source code rather than Stack Overflow answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fewer production examples&lt;/strong&gt; in the wild make it harder to evaluate edge-case behavior before committing. Community-contributed integrations and battle-tested deployment patterns are still limited compared to LangChain's ecosystem of 500+ integrations or CrewAI's growing library of role templates. The documentation covers the happy path well but has less to say on error handling and retry semantics, which is exactly where you need guidance in production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Contact Google for enterprise pricing.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. LangGraph (Without Full LangChain Stack)
&lt;/h3&gt;

&lt;p&gt;Most of the orchestration power in the LangChain ecosystem comes from LangGraph, not LangChain itself. If you don't need chains, retrievers, or document loaders, LangGraph works as a standalone graph-based workflow engine with the same cycle support and state management, minus the overhead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Complex workflows with branching, cycles, and human-in-the-loop checkpoints where full LangChain abstractions aren't needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fine-grained state control&lt;/strong&gt; over agent transitions, letting you define exactly when and how agents loop, branch, or terminate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cycle support&lt;/strong&gt; means agents can revisit previous steps based on output evaluation, which linear DAG frameworks cannot do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower overhead&lt;/strong&gt; than the full LangChain stack when your workflow doesn't involve chains or retrieval pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-loop via checkpoints.&lt;/strong&gt; LangGraph's checkpoint system lets you pause execution at any node for human review or approval before continuing. For regulated or high-stakes workflows (financial review, medical triage, legal document analysis), this is often a hard requirement rather than a nice-to-have.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Still requires &lt;code&gt;langchain-google-genai&lt;/code&gt; for Gemini access, so you're not fully decoupled from the LangChain ecosystem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph-based mental model&lt;/strong&gt; has a genuine learning curve, particularly for developers accustomed to sequential pipelines. LangGraph's checkpoint system is useful for regulated workflows, but teams new to graph-based workflows may find the mental model challenging when they're coming from linear pipelines. Expect the first week to feel slower than it should.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No built-in tracing when used standalone.&lt;/strong&gt; Without LangSmith, you need to wire up your own observability layer, which adds setup cost compared to the full LangChain + LangSmith stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  6. SmolAgents (Hugging Face)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;SmolAgents exists for the cases where a full framework is overkill. It's a lightweight single-agent wrapper from Hugging Face, useful when OpenClaw already handles most orchestration and you just need a thin layer around Gemini for tool dispatch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Contained, single-task agents where framework overhead isn't justified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimal setup&lt;/strong&gt; with the fastest path to a running single agent of any framework listed here&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight footprint&lt;/strong&gt; keeps resource usage low relative to LangChain or AutoGen&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MIT license&lt;/strong&gt; with no commercial restrictions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strong fit when OpenClaw already manages &lt;a href="https://docs.openclaw.ai/tools-and-plugins" rel="noopener noreferrer"&gt;tool dispatch and execution&lt;/a&gt;.&lt;/strong&gt; SmolAgents provides a thin orchestration wrapper without adding framework overhead. Well suited for contained tasks like summarization, classification, or single-file code review where multi-agent coordination isn't needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limited multi-agent support&lt;/strong&gt; makes SmolAgents a poor fit once your workflow grows beyond a single agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No stateful or cyclical workflows&lt;/strong&gt;, which means any looping or branching logic falls back to your own code. The boundary between &amp;amp;quot;SmolAgents is enough&amp;amp;quot; and &amp;amp;quot;I need a real framework&amp;amp;quot; tends to arrive faster than expected. If you find yourself writing custom state management around SmolAgents, you've already outgrown it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Pricing&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;th&gt;Key Differentiator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangChain/LangGraph&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (Apache-2.0)&lt;/td&gt;
&lt;td&gt;Enterprise stateful workflows&lt;/td&gt;
&lt;td&gt;500+ integrations, audit logs, updated Gemini integration (langchain-google-genai)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CrewAI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Role-based prototyping&lt;/td&gt;
&lt;td&gt;Fast path to a working crew, intuitive roles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AutoGen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Conversational multi-agent&lt;/td&gt;
&lt;td&gt;Python/.NET support, emergent behaviors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google ADK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Contact Google&lt;/td&gt;
&lt;td&gt;Google-native Gemini workflows&lt;/td&gt;
&lt;td&gt;MCP/A2A protocols, first-party Gemini API support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangGraph (standalone)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Cyclical stateful graphs&lt;/td&gt;
&lt;td&gt;Human-in-the-loop, fine-grained state control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SmolAgents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Lightweight single-agent&lt;/td&gt;
&lt;td&gt;Minimal overhead, fast deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you're building long-context, tool-heavy agents with OpenClaw, Gemini is a strong default choice. Pair it with the framework that matches your workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Gemini Is a Strong Fit for OpenClaw Agent Workflows
&lt;/h2&gt;

&lt;p&gt;OpenClaw workflows can involve long sessions with large tool outputs (codebases, API responses, log files) and multi-step execution. Gemini 3.1 Pro's 1M token context window directly reduces the need to chunk inputs or rehydrate state between steps, one of the most common failure modes in production agents.&lt;/p&gt;

&lt;p&gt;Recent Gemini API improvements preserve tool call history and responses across steps. Follow-up steps can reason over prior tool outputs without the framework needing to re-inject them. For execution-heavy workloads where &lt;a href="https://docs.openclaw.ai/agents" rel="noopener noreferrer"&gt;agents&lt;/a&gt; routinely chain five or more tool calls per session, preserving that history matters more than incremental reasoning improvements.&lt;/p&gt;

&lt;p&gt;Three additional features strengthen the fit. Native tool use with structured outputs gives clean function-calling semantics for agent workflows. Gemini API Grounding with Google Search provides web-connected agents without bolting on extra tooling. And &lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; is &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw's own recommended default&lt;/a&gt;, configured with a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models &lt;span class="nb"&gt;set &lt;/span&gt;google/gemini-3.1-pro-preview
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;[openclaw models set&lt;/code&gt; command](&lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;https://docs.openclaw.ai/concepts/model-providers&lt;/a&gt;) configures your default model provider across all sessions.&lt;/p&gt;

&lt;p&gt;Auth setup is straightforward. Set &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; or &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; as an environment variable, then run &lt;code&gt;[openclaw onboard --auth-choice gemini-api-key](https://docs.openclaw.ai/get-started/install)&lt;/code&gt;. No OAuth complexity required for the standard path.&lt;/p&gt;

&lt;p&gt;If your workload is dominated by short, reasoning-heavy prompts with minimal tool use, other models may be a better fit. Use LangChain + GPT-4 or Claude and skip the context window optimization entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  How We Chose These Frameworks
&lt;/h2&gt;

&lt;p&gt;Selection criteria were applied consistently across all six frameworks. Each criterion reflects a distinct dimension of production readiness for OpenClaw + Gemini workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini API compatibility&lt;/strong&gt; was verified against official documentation and community reports for each framework. Frameworks with native Gemini support (LangChain, Google ADK) scored higher than those requiring adapter layers (AutoGen).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw integration path&lt;/strong&gt; was confirmed via &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw's provider docs&lt;/a&gt;. We evaluated how cleanly each framework connects to OpenClaw's execution environment and &lt;a href="https://docs.openclaw.ai/agents" rel="noopener noreferrer"&gt;agent runtime&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning curve&lt;/strong&gt; was assessed by time-to-first-working-agent, not documentation quality. CrewAI and SmolAgents consistently require the least ramp time, while LangGraph's graph-based model takes several days to reach productive iteration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-agent support&lt;/strong&gt; distinguishes frameworks with native multi-agent coordination (CrewAI, AutoGen) from those where multi-agent patterns are bolted on or absent (SmolAgents).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt; was evaluated based on built-in tracing capabilities. LangChain/LangSmith provides the most complete solution out of the box. AutoGen and SmolAgents require custom logging infrastructure for comparable visibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Production readiness&lt;/strong&gt; factors in community size, update cadence, and known breakage history. AutoGen shipped breaking changes in 2025 without a clear migration path, which weighs differently than LangChain's stable releases and active Google partnership.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License type&lt;/strong&gt; (MIT vs. Apache-2.0 vs. proprietary) matters for enterprise adoption. Apache-2.0 (LangChain) includes patent grants that some legal teams prefer. MIT (CrewAI, AutoGen, SmolAgents, LangGraph) is more permissive. Google ADK requires contacting Google for enterprise terms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmark references&lt;/strong&gt; are directional only, sourced from third-party comparisons (Sparkco.ai February 2026, GitHub Gist March 2026). We did not run controlled benchmarks for this guide, and methodology varies significantly across sources. Hard metrics (latency, memory footprint, uptime percentages) were omitted where primary sources were unavailable.&lt;/p&gt;

&lt;p&gt;Community activity and 2026 update cadence were factored into each recommendation.&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is an AI agent framework?
&lt;/h3&gt;

&lt;p&gt;A software layer that orchestrates LLM calls, tool invocations, and memory management. It sits between the execution environment (OpenClaw) and the reasoning model (Gemini), handling state, branching logic, and multi-agent coordination.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose the right framework for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Match the framework to your workflow complexity. CrewAI suits fast prototyping, LangGraph handles complex stateful workflows, and SmolAgents covers simple single-task agents. All frameworks listed here support the Gemini API, so the decision turns on orchestration needs and team experience rather than model compatibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is LangChain better than CrewAI for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;LangChain is the stronger choice for production deployments requiring governance, audit trails, and complex state management. CrewAI wins on prototyping speed and simplicity for role-based agent teams. Both support Gemini. The choice depends on whether your priority is production hardening or iteration velocity.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does agent orchestration relate to OpenClaw?
&lt;/h3&gt;

&lt;p&gt;OpenClaw is the execution and tool runtime layer. Frameworks provide orchestration logic: how agents call tools, pass state, and coordinate. Gemini reasons at each step. The three layers work together, but they solve different problems. Without a framework, you're rebuilding state management, retries, and coordination yourself. Without OpenClaw, you're managing tool auth and sandboxing yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  If I'm already using OpenClaw with Gemini, do I need a framework?
&lt;/h3&gt;

&lt;p&gt;For simple single-agent tasks, SmolAgents or no framework at all may be sufficient. Multi-agent or stateful workflows benefit significantly from LangGraph or CrewAI. Production deployments with governance requirements point toward LangChain.&lt;/p&gt;

&lt;h3&gt;
  
  
  How quickly can I get a working agent running?
&lt;/h3&gt;

&lt;p&gt;CrewAI offers the fastest path to a working role-based prototype. LangChain and LangGraph require more setup time, which pays off at production scale. SmolAgents is the fastest option for single-agent tasks with minimal configuration. To &lt;a href="https://docs.openclaw.ai/get-started/install" rel="noopener noreferrer"&gt;get started with OpenClaw&lt;/a&gt;, setup takes a single command.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's the difference between LangChain and LangGraph?
&lt;/h3&gt;

&lt;p&gt;LangChain is a broad framework for LLM chains, tool integration, and retrieval. LangGraph is a graph-based extension (from the same team) for stateful, cyclical workflows. In the OpenClaw context, use LangGraph when your agents need to loop, branch conditionally, or include human-in-the-loop checkpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best alternatives to AutoGen for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;CrewAI offers lower overhead and faster prototyping with simpler Gemini integration. LangGraph provides more production stability without the legacy API breakage risk that has affected AutoGen. Google ADK gives native Gemini API support with first-party tooling, though its community is still smaller.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openclaw</category>
      <category>gemini</category>
      <category>agents</category>
    </item>
    <item>
      <title>Best LLM for OpenClaw: Gemini 3.1 Pro vs GPT-5.5 vs Claude Opus 4.7 (2026)</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Tue, 05 May 2026 11:59:31 +0000</pubDate>
      <link>https://dev.to/matthewrevell/best-llm-for-openclaw-gemini-31-pro-vs-gpt-55-vs-claude-opus-47-2026-3na4</link>
      <guid>https://dev.to/matthewrevell/best-llm-for-openclaw-gemini-31-pro-vs-gpt-55-vs-claude-opus-47-2026-3na4</guid>
      <description>&lt;p&gt;That model picker in your OpenClaw config? It determines cost per completed job, how reliably your agent follows SOUL.md instructions, and whether a large PR diff fits in one pass or gets chunked into lossy fragments.&lt;/p&gt;

&lt;p&gt;Three flagship models compete for the spot: Gemini 3.1 Pro, GPT-5.5, and Claude Opus 4.7. One model gets my default recommendation. The other two earn it for specific use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best default:&lt;/strong&gt; Gemini 3.1 Pro. Fits the workload shape of most OpenClaw deployments: large-context code review, lowest cost per job, free dev tier, native multimodal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for autonomous agents:&lt;/strong&gt; GPT-5.5. Leads reported agentic benchmarks such as Terminal-Bench 2.0, if your context stays under 128K tokens per call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for strict code review:&lt;/strong&gt; Claude Opus 4.7. Leads reported SWE-bench Pro results (64.3% in Anthropic's evaluation), strong instruction adherence, often exhibits self-checking behavior in practice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Should You Choose Gemini 3.1 Pro?
&lt;/h2&gt;

&lt;p&gt;Choose Gemini if your OpenClaw workflow involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reviewing large PRs or monorepos&lt;/li&gt;
&lt;li&gt;Combining SOUL.md, MEMORY.md, and code context in a single call&lt;/li&gt;
&lt;li&gt;Working with CI/CD artifacts like screenshots or recordings&lt;/li&gt;
&lt;li&gt;Iterating heavily on prompts during development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your workload fits this pattern, Gemini is usually the most practical choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  What OpenClaw Actually Demands from an LLM
&lt;/h2&gt;

&lt;p&gt;A single OpenClaw task isn't a chatbot turn. It's a system prompt, plus SOUL.md content, plus MEMORY.md accumulated state, plus tool call payloads, plus multiple back-and-forth exchanges. In practice, OpenClaw tasks involve significantly higher token usage than typical chatbot interactions, due to accumulated context from SOUL.md, MEMORY.md, tool calls, and multi-step exchanges.&lt;/p&gt;

&lt;p&gt;OpenClaw is a context-heavy system. The model is not just generating code; it is reasoning over accumulated state (SOUL.md, MEMORY.md, diffs, and tool outputs). That shifts the bottleneck from raw task performance to context handling and cost per call.&lt;/p&gt;

&lt;p&gt;Reliable tool-calling degrades first when context fills up. Instruction adherence drops next, especially with layered SOUL.md rules. Context window behavior under load, whether the model actually reasons over tokens near the middle of a long input, determines whether single-pass analysis works or just looks like it works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two Workload Categories
&lt;/h3&gt;

&lt;p&gt;OpenClaw deployments generally fall into two patterns:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Large-context analysis&lt;/strong&gt; covers code review, diff reasoning, and repo-wide changes. These jobs load full PR diffs alongside SOUL.md, MEMORY.md, and surrounding file context into a single call. Token counts are high, and the ability to reason across the entire input in one pass matters more than raw task-completion speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-step autonomous tasks&lt;/strong&gt; involve planning, tool use, and execution loops. The model runs multiple shorter calls, each with moderate context, to complete a sequence of actions. Benchmark scores on agentic task completion are the best proxy for performance here.&lt;/p&gt;

&lt;p&gt;Many OpenClaw workflows lean toward large-context analysis, particularly for code review and CI/CD automation. That workload pattern, not just price or benchmarks, should drive model selection. Gemini 3.1 Pro supports large-context workflows without requiring chunking in many cases. GPT-5.5 is built for the second category. Claude Opus 4.7 brings the highest coding-specific benchmark scores and strict instruction adherence across both.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Contenders at a Glance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini 3.1 Pro:&lt;/strong&gt; 1M token context, &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;$2/$12 per 1M tokens (standard context)&lt;/a&gt; (≤200K tokens; $4/1M above that threshold), free dev tier through Google AI Studio, natively multimodal across text, images, audio, and video.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPT-5.5:&lt;/strong&gt; 128K context on the standard API, &lt;a href="https://developers.openai.com/api/docs/models/gpt-5.5" rel="noopener noreferrer"&gt;$5/$30 per 1M tokens&lt;/a&gt;, the highest Terminal-Bench 2.0 score of the three at 82.7%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Opus 4.7:&lt;/strong&gt; 1M context at flat pricing, &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;$5/$25 per 1M tokens&lt;/a&gt;, leads reported SWE-bench Pro results (64.3% in Anthropic's evaluation).&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Reference Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;128K (standard API)&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input price ($/1M)&lt;/td&gt;
&lt;td&gt;$2.00 (≤200K) / $4.00 (&amp;amp;amp;amp;gt;200K)&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output price ($/1M)&lt;/td&gt;
&lt;td&gt;$12.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅ Google AI Studio&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 2.0&lt;/td&gt;
&lt;td&gt;68.5%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;82.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;69.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;64.3%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal (audio/video)&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Evaluation Criteria
&lt;/h2&gt;

&lt;p&gt;Benchmark numbers are drawn from vendor announcements and should be interpreted accordingly. SWE-bench Pro scores come from &lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;Anthropic's Opus 4.7 announcement&lt;/a&gt;. Pricing is sourced from each provider's official API documentation.&lt;/p&gt;

&lt;p&gt;Four dimensions, weighted for OpenClaw production use: context window capacity, cost per completed job, code review quality on benchmarks, and multimodal support for CI/CD workflows.&lt;/p&gt;

&lt;p&gt;For OpenClaw workloads, context capacity and cost per job often matter more than raw benchmark scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context Window
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro offers a &lt;a href="https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro" rel="noopener noreferrer"&gt;1M token context window&lt;/a&gt;, one of the largest available at standard API pricing. For OpenClaw code review, that means single-pass ingestion of a full PR diff plus surrounding file context, SOUL.md, and MEMORY.md without splitting the input.&lt;/p&gt;

&lt;p&gt;Single-pass analysis can capture cross-module relationships that chunked approaches miss. When a renamed interface in one file breaks three consumers in another, Gemini can process the full picture in one call. The tradeoff: requests exceeding &lt;a href="https://getdeploying.com/llms/gemini-3.1-pro-preview" rel="noopener noreferrer"&gt;200K tokens are billed at $4.00/1M input&lt;/a&gt; instead of the standard $2.00.&lt;/p&gt;

&lt;p&gt;Large-context models reduce the need for chunking, but can still struggle if prompts become too diffuse or contain conflicting instructions across files.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5's standard API context window is &lt;a href="https://developers.openai.com/api/docs/models/gpt-5.5" rel="noopener noreferrer"&gt;128K tokens&lt;/a&gt;. Larger context tiers (such as 1M tokens) are not generally available on standard API access, which means it's not the default API experience most teams will use.&lt;/p&gt;

&lt;p&gt;128K is not a soft limit you can occasionally brush against. A 200K-token PR diff plus SOUL.md plus task history fits in one Gemini call; it doesn't fit in GPT-5.5's standard tier at all. That forces chunked processing or context truncation, and for monorepo-scale OpenClaw workflows, chunking means the model never sees cross-file relationships in a single reasoning step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Claude Opus 4.7 provides a &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;1M token context window at flat pricing&lt;/a&gt;. A 900K-token request is billed at the same per-token rate as a 100K-token request, with no long-context surcharge.&lt;/p&gt;

&lt;p&gt;For workloads that consistently exceed 200K tokens per call, Opus 4.7 has a pricing edge over Gemini's tiered model. If your typical OpenClaw job stays under 200K input tokens, Gemini's base rate ($2.00/1M) is cheaper by a wide margin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context Window Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Max context&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;td&gt;128K (standard)&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-context premium&lt;/td&gt;
&lt;td&gt;✅ above 200K&lt;/td&gt;
&lt;td&gt;⚠️ 1M not generally available on standard API&lt;/td&gt;
&lt;td&gt;❌ flat pricing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monorepo-scale code review&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cost Per Completed OpenClaw Job
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is typically the cheapest at standard on-demand pricing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;At $2.00 input / $12.00 output per 1M tokens, an illustrative 10-call code review run with roughly 500K input tokens and 50K output tokens comes to approximately &lt;strong&gt;$1.60&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The free dev tier through Google AI Studio is a genuine advantage during development. Iterating on SOUL.md prompts and agent configurations without paying per call removes friction that adds up fast when you're tuning agent behavior. Rate limits on the free tier will constrain sustained production use, but for development and testing, nothing else matches it.&lt;/p&gt;

&lt;p&gt;Gemini also supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio), which means teams can switch from another provider without rewriting integration code. The migration cost is a config change, not an engineering project.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 is the most expensive at standard rates: $5.00 input / $30.00 output per 1M tokens. For the same illustrative scenario, the 10-call code review run costs approximately &lt;strong&gt;$4.00&lt;/strong&gt;, or 2.5x what Gemini charges.&lt;/p&gt;

&lt;p&gt;OpenAI claims GPT-5.5 uses fewer tokens to complete equivalent Codex tasks compared to prior models. Token efficiency partially offsets the higher per-token price on agentic runs. Batch and Flex pricing at half the standard rate is available for workloads that tolerate asynchronous processing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7's headline price is $5.00 input / $25.00 output per 1M tokens. For the same illustrative scenario, the 10-call run costs approximately &lt;strong&gt;$3.75&lt;/strong&gt; before accounting for tokenizer overhead.&lt;/p&gt;

&lt;p&gt;Effective cost can increase depending on tokenization and prompt structure. Prompt caching (up to 90% savings) and batch processing (50% savings) can offset the increase, but only if your workload structure supports them. If you're not caching repeated SOUL.md content across calls, you're leaving money on the table.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Comparison Table
&lt;/h3&gt;

&lt;p&gt;These estimates assume approximately 500K input and 50K output tokens across 10 calls; actual costs vary by workload.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input ($/1M)&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output ($/1M)&lt;/td&gt;
&lt;td&gt;$12.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Est. 10-call run (illustrative)&lt;/td&gt;
&lt;td&gt;~$1.60&lt;/td&gt;
&lt;td&gt;~$4.00&lt;/td&gt;
&lt;td&gt;~$3.75+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hidden cost risk&lt;/td&gt;
&lt;td&gt;⚠️ extended context premium&lt;/td&gt;
&lt;td&gt;✅ token efficiency claim&lt;/td&gt;
&lt;td&gt;⚠️ possible tokenizer overhead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Code Review Quality
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;68.5% on &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;Terminal-Bench 2.0&lt;/a&gt; and 67.3% on GDPval, the lowest of the three on both agentic benchmarks. On BrowseComp (web research capability), it scores a competitive 85.9%.&lt;/p&gt;

&lt;p&gt;Gemini's value in OpenClaw code review comes from fitting the workload pattern rather than leading on isolated coding tasks. Being able to hold an entire codebase diff in one pass means the model reasons over relationships between files that a higher-scoring model working on chunked input may not see together.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 leads Terminal-Bench 2.0 at &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;82.7%&lt;/a&gt; and GDPval at 84.9%. BrowseComp at 90.1% makes it the strongest option when web research is part of the agent loop.&lt;/p&gt;

&lt;p&gt;On workloads that fit within 128K tokens, GPT-5.5 will complete agentic tasks more reliably than either competitor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7 leads reported SWE-bench Pro results (&lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;64.3% in Anthropic's evaluation&lt;/a&gt;), the benchmark most directly tied to coding-specific tasks. Terminal-Bench 2.0 at 69.4% puts it slightly ahead of Gemini.&lt;/p&gt;

&lt;p&gt;Two qualitative traits stand out for OpenClaw use: Opus 4.7 often exhibits self-checking behavior in practice (catching its own logical faults during planning) and strict instruction adherence. For teams with complex SOUL.md configurations, Opus 4.7's precision in following multi-layered instructions reduces false positives in code review output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benchmark Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 2.0&lt;/td&gt;
&lt;td&gt;68.5%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;82.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;69.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GDPval&lt;/td&gt;
&lt;td&gt;67.3%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;84.9%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;80.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;64.3%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BrowseComp&lt;/td&gt;
&lt;td&gt;85.9%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;90.1%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;79.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Multimodal Support for CI/CD Workflows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro &lt;a href="https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro" rel="noopener noreferrer"&gt;natively processes text, images, audio, and video&lt;/a&gt; in a single API call. CI/CD build screenshots, architecture diagrams, and video recordings of failing test runs can all be included alongside code context.&lt;/p&gt;

&lt;p&gt;No separate vision or audio model required. For teams whose OpenClaw workflows involve visual artifacts, Gemini handles the full spectrum without workarounds.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 supports text, images, and audio. Video support is limited. Computer use and web search tools are available. The multimodal coverage is broad but stops short of Gemini's native four-modality input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7 handles &lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;text and images only&lt;/a&gt;, with improved resolution compared to Opus 4.6. CI/CD screenshots work well. Audio and video inputs are not supported. If your CI/CD pipeline produces screen recordings or audio logs, Opus 4.7 can't process them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multimodal Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ (improved res)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD screenshots&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Who Each Model Serves Best
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro: Best Default for Most OpenClaw Teams
&lt;/h3&gt;

&lt;p&gt;Most OpenClaw code review workflows load more than 128K tokens per call. Gemini is built for that. A full PR diff, SOUL.md, MEMORY.md, and surrounding file context fit in a single 1M-token call without splitting or coordination logic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1M context at $2/1M input&lt;/strong&gt; for requests under 200K tokens, making it the cheapest large-context option for typical OpenClaw code review workloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free dev tier removes iteration cost&lt;/strong&gt; when tuning SOUL.md and agent behavior, a workflow step every OpenClaw team repeats frequently&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native four-modality input&lt;/strong&gt; covers CI/CD screenshots, audio logs, and video artifacts in a single call. No separate vision or audio model required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio),&lt;/strong&gt; meaning switching from another provider is a config change, not a migration project&lt;/li&gt;
&lt;li&gt;Single-pass monorepo analysis keeps full cross-file context intact in one call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coding benchmark scores (68.5% Terminal-Bench, 67.3% GDPval) are the lowest of the three on isolated task precision. If your typical job consistently exceeds 200K input tokens, the $4/1M rate erodes the pricing advantage fast. And the free tier rate limits will not sustain production workloads, requiring a paid plan for anything beyond development and testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5: Best for Autonomous Multi-Step Workflows
&lt;/h3&gt;

&lt;p&gt;82.7% on Terminal-Bench 2.0 is the strongest agentic score of the three by a wide margin. GPT-5.5's standard context window, however, is 128K tokens. Teams whose primary metric is agentic task completion rate, on workloads that fit within that limit, get the most reliable execution from GPT-5.5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token-efficient completions&lt;/strong&gt; partially offset the higher per-token price, according to OpenAI's claims about reduced token usage per task.&lt;/p&gt;

&lt;p&gt;A large PR diff combined with SOUL.md, MEMORY.md, and multi-turn task history will exceed 128K tokens in many monorepo workflows, forcing you to chunk inputs and lose cross-file context. And at an illustrative cost of ~$4.00 per 10-call run, GPT-5.5 is 2.5x the cost of the same workload on Gemini 3.1 Pro.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7: Best for Code Review Precision
&lt;/h3&gt;

&lt;p&gt;64.3% on SWE-bench Pro in Anthropic's evaluation is the highest coding-specific score of the three. For teams where a false positive in code review means a wasted engineering cycle, that number matters more than Terminal-Bench.&lt;/p&gt;

&lt;p&gt;Opus 4.7 often exhibits self-checking behavior in practice, catching logical faults during planning and reducing false positive rates in code review output. Strict instruction adherence makes it the strongest option for teams with complex, multi-layered SOUL.md configurations.&lt;/p&gt;

&lt;p&gt;The cost picture is more nuanced than the headline $5/$25 suggests. Effective cost can increase depending on tokenization and prompt structure. Prompt caching and batch processing can offset this, but only if your workload supports them. And no audio or video support limits usefulness for CI/CD workflows involving non-text, non-image artifacts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Which model has the largest context window for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro and Claude Opus 4.7 both support 1M tokens at the standard API level. GPT-5.5's standard API is 128K; larger context tiers (such as 1M tokens) are not generally available on standard API access. For monorepo code review, Gemini or Claude are the practical choices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Gemini 3.1 Pro work with OpenClaw out of the box?
&lt;/h3&gt;

&lt;p&gt;Yes. Google AI Studio provides an OpenAI-compatible endpoint that works with OpenClaw's provider configuration. The full setup walkthrough is in the &lt;a href="https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48"&gt;Gemini + OpenClaw guide&lt;/a&gt;. The free dev tier is available immediately; rate limits apply on sustained production workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is GPT-5.5 the best on benchmarks but not the top recommendation?
&lt;/h3&gt;

&lt;p&gt;The Terminal-Bench 2.0 lead (82.7%) is legitimate, but GPT-5.5's standard context window is 128K tokens. Large OpenClaw workflows regularly exceed that limit. Combined with 2.5x the cost of Gemini at standard API rates, the benchmark advantage doesn't offset the practical constraints for most teams. The typical OpenClaw workload is large-context code review, and GPT-5.5's standard tier doesn't fit that pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Claude Opus 4.7 actually more expensive than the headline price suggests?
&lt;/h3&gt;

&lt;p&gt;Effective cost can increase depending on tokenization and prompt structure. The $5/$25 headline price is unchanged, but the same input text may consume more tokens. Prompt caching (up to 90% savings) offsets the increase for repeated content like SOUL.md.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I switch models mid-project in OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Yes. OpenClaw supports any OpenAI-compatible endpoint, so the model is a config-level change. SOUL.md and MEMORY.md files are model-agnostic, though agent behavior may vary between models due to differences in instruction interpretation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which model handles CI/CD screenshot analysis best?
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro processes images, audio, and video natively. Claude Opus 4.7 supports images with improved resolution over its predecessor. GPT-5.5 supports images and audio; video support is limited.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does context size matter so much for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Because OpenClaw tasks combine multiple sources of context (SOUL.md, MEMORY.md, code diffs, and tool outputs) into a single reasoning step. If that context exceeds the model's limit, it must be split across multiple calls, which adds complexity and can reduce reasoning quality across the full diff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where This Recommendation Breaks Down
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is not a universal default.&lt;/p&gt;

&lt;p&gt;If your OpenClaw workflow depends on tight iterative loops with smaller contexts, or if instruction-following precision is the primary constraint, GPT-5.5 or Claude Opus 4.7 may perform better despite higher cost or smaller context windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Verdict
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Gemini 3.1 Pro Is the Default Choice
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro matches how most OpenClaw teams actually work: loading 200K+ token PR diffs alongside SOUL.md, MEMORY.md, and surrounding file context into a single call, then running multi-step reviews without splitting inputs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Large-context workflows without chunking.&lt;/strong&gt; 1M tokens covers full PR diffs, SOUL.md, MEMORY.md, and surrounding file context in a single pass.&lt;/li&gt;
&lt;li&gt;No need to split inputs, coordinate multiple calls, or merge partial reasoning across chunks. Simpler agent architecture, fewer failure modes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lowest cost per completed job.&lt;/strong&gt; For an illustrative scenario, ~$1.60 per 10-call run vs ~$4.00 for GPT-5.5.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free iteration tier during SOUL.md development.&lt;/strong&gt; Google AI Studio's free tier removes per-call cost from the prompt tuning cycle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native multimodal for CI/CD pipelines.&lt;/strong&gt; Images, audio, and video in one API call. No separate vision or audio model required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Config-level migration via OpenAI-compatible interfaces.&lt;/strong&gt; No integration rewrite required.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Summary Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;✅ 1M tokens&lt;/td&gt;
&lt;td&gt;⚠️ 128K standard&lt;/td&gt;
&lt;td&gt;✅ 1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per job (illustrative)&lt;/td&gt;
&lt;td&gt;✅ lowest (~$1.60)&lt;/td&gt;
&lt;td&gt;❌ highest (~$4.00)&lt;/td&gt;
&lt;td&gt;⚠️ mid (~$3.75+)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agentic task completion&lt;/td&gt;
&lt;td&gt;⚠️ 68.5% Terminal-Bench&lt;/td&gt;
&lt;td&gt;✅ 82.7% Terminal-Bench&lt;/td&gt;
&lt;td&gt;⚠️ 69.4% Terminal-Bench&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code review precision&lt;/td&gt;
&lt;td&gt;⚠️ no SWE-bench data&lt;/td&gt;
&lt;td&gt;⚠️ no SWE-bench data&lt;/td&gt;
&lt;td&gt;✅ 64.3% SWE-bench Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal (audio/video)&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-context flat pricing&lt;/td&gt;
&lt;td&gt;⚠️ premium above 200K&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro Is the Right Default
&lt;/h3&gt;

&lt;p&gt;Most OpenClaw teams are running code review on repositories that exceed 128K tokens. That single fact eliminates GPT-5.5's standard tier from consideration for the majority of production workloads. Between the two 1M-context options, Gemini's cost advantage is substantial: for an illustrative scenario, roughly $1.60 per 10-call run compared to $3.75+ for Opus 4.7.&lt;/p&gt;

&lt;p&gt;The free dev tier removes friction during the SOUL.md iteration cycle that every OpenClaw team goes through repeatedly. Native multimodal support covers CI/CD screenshots and video artifacts without extra configuration or separate model calls. And Gemini supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio), meaning zero migration effort if you're switching from another provider.&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro wins on the combination of workload fit, cost, multimodal coverage, and developer experience. At scale, the $2.40 per-job savings over Opus 4.7 (and $2.40 more over GPT-5.5) compounds into the difference between a sustainable deployment and one that gets cut in a budget review.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to Choose GPT-5.5 Instead
&lt;/h3&gt;

&lt;p&gt;Your workflow is primarily autonomous multi-step task completion rather than large-context code analysis. Context stays within 128K tokens per call. Your team is already invested in the OpenAI Agents SDK ecosystem and the switching cost outweighs the per-token savings.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to Choose Claude Opus 4.7 Instead
&lt;/h3&gt;

&lt;p&gt;Code review false positive rate is your primary production concern. Your SOUL.md configurations are complex enough that strict instruction adherence is a requirement, not a nice-to-have. You have prompt caching in place to offset Opus 4.7's higher effective cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48"&gt;Using Gemini with OpenClaw: Setup Guide + Real Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deepinfra.com/blog/best-models-openclaw-agentic-workloads" rel="noopener noreferrer"&gt;Best Models for OpenClaw: Top Picks for Agentic Workloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;Gemini Developer API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>openclaw</category>
      <category>ai</category>
      <category>llm</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Using Gemini with OpenClaw: Setup Guide + Real Use Cases</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 01 May 2026 09:49:58 +0000</pubDate>
      <link>https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48</link>
      <guid>https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48</guid>
      <description>&lt;p&gt;OpenClaw supports a wide range of LLM providers, and choosing the right one shapes how your agents perform on real work. Gemini 3.1 Pro has become a compelling option for teams running developer automation, particularly when workflows involve large codebases, multimodal artifacts, or high-frequency agent calls. &lt;/p&gt;

&lt;p&gt;The combination of a large context window, native support for images, audio, and video, and a free development tier through Google AI Studio makes Gemini worth serious consideration as your &lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;OpenClaw LLM backend&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This guide walks through the full setup, three practical use cases, and an honest comparison against GPT-5.5 and Claude Opus 4.7 in the same OpenClaw environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Gemini Works Well as an OpenClaw LLM Backend
&lt;/h2&gt;

&lt;p&gt;Three characteristics make Gemini a strong fit for agentic developer workflows: context capacity, cost structure, and multimodal input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Large Context Window
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro supports a large context window, which changes how OpenClaw agents can approach code review and repository-level tasks. Instead of chunking a PR diff into multiple calls and losing cross-file relationships, an agent can ingest the full diff plus surrounding file context in a single pass. For monorepos or PRs that touch dozens of files, the difference between single-pass and chunked analysis is the difference between catching a subtle cross-module bug and missing it entirely.&lt;/p&gt;

&lt;p&gt;All three major models (Gemini, GPT-5.5, Claude Opus 4.7) support large context windows, though exact limits and effective usage can vary by tier and endpoint. Gemini's &lt;a href="https://deepmind.google/models/model-cards/gemini-3-1-pro/" rel="noopener noreferrer"&gt;context capacity&lt;/a&gt; is among the largest available, which gives it a practical edge for repository-scale analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost for High-Frequency Agentic Calls
&lt;/h3&gt;

&lt;p&gt;Agentic workflows are expensive by nature. A single OpenClaw code review run might make ten or more API calls as the agent reasons through a diff, checks style guides, and drafts comments. Gemini 3.1 Pro includes a free development tier through &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;, which lets you iterate on agent prompts without paying per call during development. That free tier has rate limits that can be exhausted quickly, sometimes within minutes on real agent workloads. For sustained production use, a paid plan is likely necessary; check &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt; for current details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multimodal Input Support
&lt;/h3&gt;

&lt;p&gt;Gemini processes images, audio, and video natively. For CI/CD workflows, an OpenClaw agent can parse a failing build's screenshot artifact or a visual regression diff without requiring a separate OCR pipeline or explicit image-to-text preprocessing. Text-only models typically require external tooling for that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Gemini as Your OpenClaw LLM Backend
&lt;/h2&gt;

&lt;p&gt;The setup takes about five minutes. Google (Gemini) is a built-in provider in OpenClaw's model catalog, so there's no custom provider configuration required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Get Your Gemini API Key
&lt;/h3&gt;

&lt;p&gt;Go to &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt; and generate an API key. The free tier works for development and prompt iteration. You do not need a Google Cloud project for this; AI Studio handles key provisioning directly.&lt;/p&gt;

&lt;p&gt;A note on OAuth: some guides mention a Gemini CLI OAuth flow for OpenClaw. The OAuth integration is unofficial and unsupported by Google. Avoid it for any serious use. Stick with the API key method.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Set the Environment Variable
&lt;/h3&gt;

&lt;p&gt;Add your API key to your shell environment or &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;your_key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OpenClaw reads this variable at startup. If you're running OpenClaw on a VPS or in CI, set it in your deployment config or secrets manager rather than hardcoding it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Select Gemini via the OpenClaw CLI
&lt;/h3&gt;

&lt;p&gt;You have two options. The interactive onboarding flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw agent &lt;span class="nt"&gt;--onboard&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select "Google (Gemini)" when prompted for your provider.&lt;/p&gt;

&lt;p&gt;Or set the model directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models &lt;span class="nb"&gt;set &lt;/span&gt;google/gemini-3.1-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both approaches write the same configuration. The direct method is faster if you already know which model you want.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Verify the Configuration
&lt;/h3&gt;

&lt;p&gt;Confirm everything is wired up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models status &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="nt"&gt;--agent&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see output like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"defaults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"google/gemini-3.1-pro"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"active"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"google/gemini-3.1-pro"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ok"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the &lt;code&gt;active&lt;/code&gt; field shows your selected model, you're ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing a Model: gemini-3.1-pro vs gemini-3.1-pro-preview
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; for stable production workloads. The behavior is consistent between updates, and you won't encounter unexpected changes in reasoning patterns mid-sprint.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; gives you access to the latest capabilities and was &lt;a href="https://blog.meetneura.ai/openclaw-2026-2-21/" rel="noopener noreferrer"&gt;added in OpenClaw 2026.2.21&lt;/a&gt;. Preview variants are useful for evaluating new reasoning improvements, but their behavior may shift between updates. Pin to the stable ref for anything running unattended.&lt;/p&gt;

&lt;h3&gt;
  
  
  Troubleshooting
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw rejects your model selection.&lt;/strong&gt; If you get a model-not-found error, confirm you're on OpenClaw 2026.2.21 or later. Older versions don't include the Gemini 3.1 model refs. Update OpenClaw and try again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API key errors after setup.&lt;/strong&gt; Double-check that &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; is exported in the same shell session where OpenClaw runs. A common mistake: setting it in &lt;code&gt;.bashrc&lt;/code&gt; but running OpenClaw from a different shell profile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate limit errors on the free tier.&lt;/strong&gt; The free tier's rate limits can be exhausted quickly, sometimes within minutes on real agent workloads. If you're hitting 429 errors consistently, you need the paid tier. As a quick fallback, you can also switch to &lt;code&gt;google/gemini-2.5-flash&lt;/code&gt; for a lighter-weight model that consumes less quota per call.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 Real Use Cases with Gemini + OpenClaw
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use Case 1: Automated Code Review
&lt;/h3&gt;

&lt;p&gt;An OpenClaw agent configured with Gemini 3.1 Pro can review a full PR diff plus the surrounding file context in a single call. The agent flags style violations, potential security issues, and logic errors, then posts inline comments on the PR.&lt;/p&gt;

&lt;p&gt;The large context window is what makes single-pass review practical. Rather than splitting a 40-file PR into batches (and losing the ability to reason across files), the agent sees everything at once. Cross-file dependency issues, like a renamed function that's still referenced elsewhere, surface naturally. Gemini often works without requiring heavy prompt engineering for this type of structured analysis task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 2: PR Summarization for Engineering Teams
&lt;/h3&gt;

&lt;p&gt;For teams drowning in PR notifications, an OpenClaw agent can generate structured summaries: what changed, why it changed, and a risk-level assessment. These summaries get posted automatically to Slack channels or GitHub PR comments.&lt;/p&gt;

&lt;p&gt;The practical value is triage speed. A tech lead scanning 15 PRs before standup can read summaries instead of diffs, focusing review time on the high-risk changes. Gemini's ability to process large diffs in one pass means the summary reflects the full scope of the change, not a truncated view.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 3: CI/CD Workflow Automation
&lt;/h3&gt;

&lt;p&gt;When a build breaks, an OpenClaw agent can monitor the failure, parse log output, examine visual artifacts (screenshots from e2e test failures, for instance), and draft fix suggestions or open issues automatically.&lt;/p&gt;

&lt;p&gt;Gemini's multimodal input is the differentiator here. A failing Playwright test that produces a screenshot comparison can be fed directly to the agent alongside the error log. The agent sees both the visual regression and the stack trace in the same context. Text-only models typically require external tooling for that kind of combined analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini vs GPT-5.5 vs Claude Opus 4.7 in OpenClaw: Quick Comparison
&lt;/h2&gt;

&lt;p&gt;All three are first-class providers in OpenClaw. The right choice depends on your workflow shape.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context window&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multimodal input&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Image, audio, video&lt;/td&gt;
&lt;td&gt;Image only&lt;/td&gt;
&lt;td&gt;Image only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tool use &amp;amp; reasoning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Emphasizes tool use and multi-step reasoning&lt;/td&gt;
&lt;td&gt;Strong agentic coding per published benchmarks&lt;/td&gt;
&lt;td&gt;Strong instruction-following&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost considerations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Includes free dev tier via Google AI Studio&lt;/td&gt;
&lt;td&gt;No free tier&lt;/td&gt;
&lt;td&gt;No free tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Typical use cases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Multimodal CI/CD and agent iteration&lt;/td&gt;
&lt;td&gt;General-purpose agents and coding tasks&lt;/td&gt;
&lt;td&gt;Precise structured code generation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All three models support large context windows, though exact limits and effective usage can vary by tier and endpoint.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Gemini 3.1 Pro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Solo developers, hobbyists, and teams working with large PRs or monorepos, CI/CD workflows that include visual artifacts, and anyone running frequent agent loops or iterating on prompts where development-time cost matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free development and testing tier via Google AI Studio&lt;/strong&gt; means you can iterate on agent prompts without paying per call during development. Useful when you're tuning OpenClaw agent behavior across multiple workflows and running dozens of test invocations per session (note: Gemini 3.1 Pro access at higher usage levels may require a paid plan; see &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native multimodal input&lt;/strong&gt; handles screenshots, diagrams, audio, video, and mixed-format build artifacts directly. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Considerations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Preview variants introduce the latest reasoning improvements but may behave differently between updates.&lt;/strong&gt; Use the stable &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; ref for production workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI Studio's free tier is well-suited for development and prompt iteration.&lt;/strong&gt; For sustained agent workloads, a paid plan gives you the headroom to run without interruption.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; General-purpose agent workflows and coding tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strong agentic coding performance&lt;/strong&gt; per OpenAI's published benchmarks. &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;Per Terminal-Bench 2.0&lt;/a&gt;, GPT-5.5 shows strong performance on agentic coding tasks, though results vary by workload and evaluation method.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broad tool-calling support&lt;/strong&gt; with a well-established function-calling API that many existing integrations are built against.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No free tier&lt;/strong&gt; for API access. Every call during development and testing costs money.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image-only multimodal input.&lt;/strong&gt; No native support for audio or video, which limits CI/CD use cases involving visual or media artifacts.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Claude Opus 4.7&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Precise structured code generation and tasks requiring strict instruction adherence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strong instruction-following&lt;/strong&gt; makes Claude Opus 4.7 a good fit when your OpenClaw agent prompts require exact output formatting or rigid schema compliance. &lt;a href="https://platform.claude.com/docs/en/about-claude/models/overview" rel="noopener noreferrer"&gt;Claude's model documentation&lt;/a&gt; positions the Opus line for high-precision tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable structured output&lt;/strong&gt; for code generation workflows where the agent needs to produce syntactically valid, well-formatted code consistently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No free tier&lt;/strong&gt; for API access, which raises the cost of iterating on agent prompts during development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image-only multimodal input.&lt;/strong&gt; Like GPT-5.5, Claude Opus 4.7 does not natively accept audio or video.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does OpenClaw support Gemini natively?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Google (Gemini) is a &lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;built-in provider in OpenClaw's model catalog&lt;/a&gt;. No custom provider configuration is needed. Gemini 3.1 model refs were added in the OpenClaw 2026.2.21 release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which Gemini model should I use with OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; for stable production workloads. Use &lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; if you want to test the latest reasoning improvements, but be aware that preview behavior may change between updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini free to use with OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google AI Studio provides a free tier that works well for development and prompt iteration. The free tier's rate limits can be exhausted quickly, sometimes within minutes on real agent workloads. Higher usage levels may require a paid plan. Check &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt; for current limits and pricing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I set the Gemini API key for OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generate an API key at &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;aistudio.google.com&lt;/a&gt;, then set &lt;code&gt;export GEMINI_API_KEY=&amp;lt;your_key&amp;gt;&lt;/code&gt; in your shell or &lt;code&gt;.env&lt;/code&gt; file before starting OpenClaw. Do not use the unofficial OAuth method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use Gemini for CI/CD automation in OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, and Gemini's multimodal input gives it an advantage here. An OpenClaw agent backed by Gemini can parse build logs alongside visual artifacts (screenshots, image diffs) without requiring a separate OCR pipeline or explicit image-to-text preprocessing in many cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does Gemini compare to GPT-5.5 and Claude Opus 4.7 in OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro's model capabilities emphasize tool use and multi-step reasoning, and it's the only one of the three that accepts audio and video input natively. GPT-5.5 shows strong agentic coding performance per published benchmarks. Claude Opus 4.7 leads on precise instruction-following. All three support large context windows, though exact limits and effective usage can vary by tier and endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should I do if OpenClaw rejects my Gemini model selection?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Confirm you're running &lt;a href="https://blog.meetneura.ai/openclaw-2026-2-21/" rel="noopener noreferrer"&gt;OpenClaw 2026.2.21 or later&lt;/a&gt;. The Gemini 3.1 model refs were added in that release. If you're on an older version, update OpenClaw and retry &lt;code&gt;openclaw models set google/gemini-3.1-pro&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is the strongest default for OpenClaw teams running workflows against large codebases, processing multimodal CI/CD artifacts, or iterating rapidly on agent prompts without wanting to pay for every test call. If your daily work involves reviewing PRs that span dozens of files, parsing build failures that include screenshots, or running high-frequency agent loops during development, Gemini is where you should start.&lt;/p&gt;

&lt;p&gt;For teams doing precise structured code generation with strict output formatting, Claude Opus 4.7 is worth evaluating. For general-purpose agent tasks with heavy function-calling, GPT-5.5 remains a solid choice. But for the combination of context capacity, multimodal input, and accessible pricing during development, Gemini paired with OpenClaw covers the most ground for developer automation workflows.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>gemini</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>AMA with Solana's Brianna Migliaccio</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Wed, 29 Apr 2026 13:44:10 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/ama-with-solanas-brianna-migliaccio-ahb</link>
      <guid>https://dev.to/100daysofsolana/ama-with-solanas-brianna-migliaccio-ahb</guid>
      <description>&lt;p&gt;If you're new to Solana—or Web3 and blockchain more broadly—you almost certainly have questions.&lt;/p&gt;

&lt;p&gt;That’s expected.&lt;/p&gt;

&lt;p&gt;Web3 works under different assumptions to traditional web and mobile development.&lt;br&gt;&lt;br&gt;
Plus, there’s a whole new set of concepts and terminology to get familiar with.&lt;/p&gt;

&lt;p&gt;So let’s make that easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join us live
&lt;/h2&gt;

&lt;p&gt;📺 &lt;a href="https://twitch.tv/mlh" rel="noopener noreferrer"&gt;https://twitch.tv/mlh&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🗓 Wednesday, April 29&lt;br&gt;&lt;br&gt;
🕛 12:00 Eastern / 17:00 UK / 21:30 India  &lt;/p&gt;

&lt;p&gt;Come ready with your questions.&lt;/p&gt;

&lt;p&gt;And if you can’t make it, we’ll share the highlights here on DEV.&lt;/p&gt;

&lt;p&gt;Want to learn more about Solana? &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join the 100 Days of Solana challenge &amp;gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>learning</category>
      <category>programming</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Web3 Terminology Mapped to What You Already Know</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Mon, 20 Apr 2026 17:10:05 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/web3-terminology-mapped-to-what-you-already-know-4afk</link>
      <guid>https://dev.to/100daysofsolana/web3-terminology-mapped-to-what-you-already-know-4afk</guid>
      <description>&lt;p&gt;Web3 can seem intimidating at first. And a lot of that is to do with terminology.&lt;/p&gt;

&lt;p&gt;But once you make the connection between what you already know from web and mobile dev, for example, everything becomes a little clearer.&lt;/p&gt;

&lt;p&gt;Here are some common Web3 terms and concepts translated into their Web2 equivalents to help you make the move.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  
&lt;h2&gt;
  
  
  100 Days of Solana
&lt;/h2&gt;

&lt;p&gt;Want to learn Web3? Join 100 Days of Solana for free to go from curiosity to building!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register Now&lt;/a&gt;
&lt;/p&gt;


&lt;/div&gt;


&lt;h2&gt;
  
  
  Web3 Fundamentals
&lt;/h2&gt;

&lt;p&gt;Let's start with the basics. &lt;/p&gt;

&lt;h3&gt;
  
  
  Why is it called Web3?
&lt;/h3&gt;

&lt;p&gt;The idea is that this is third phase of the web.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web 1&lt;/strong&gt; was the original, read-only world wide web of the 90s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web 2&lt;/strong&gt; made things two-way, so the web became participatory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web 3&lt;/strong&gt; uses blockchain technologies to make you the owner of your data, rather than the companies running websites and apps you use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can take a while to realize why that's important and what it means. Seeing it in action makes all the difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web3 Core Pillars
&lt;/h3&gt;

&lt;p&gt;To understand how this actually works, you only need to know three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Blockchain:&lt;/strong&gt; A public ledger (think of it like a &lt;em&gt;very&lt;/em&gt; distributed database) that lives on thousands of computers at once. It’s "permissionless", meaning no one can block you from using it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Wallet:&lt;/strong&gt; Your digital identity. Instead of an email and password, you use a private key stored in your wallet to prove you own your assets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Contracts:&lt;/strong&gt; Pieces of code that live on the blockchain. They execute automatically when certain conditions are met.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fckjt9s6wjux62xs1tf9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fckjt9s6wjux62xs1tf9u.png" alt="The three core " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But there are plenty more ideas and phrases that you'll need to get used to in order to feel fully comfortable in the Web3 world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making Sense of the Rest
&lt;/h2&gt;

&lt;p&gt;Now that you understand the three core pieces — &lt;strong&gt;blockchain, wallet, and smart contracts&lt;/strong&gt; — everything else in Web3 is really just combinations of those ideas.&lt;/p&gt;

&lt;p&gt;The terminology can still feel unfamiliar, though. So let’s map the most common terms to things you already use as a developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identity: Wallets Replace Accounts
&lt;/h3&gt;

&lt;p&gt;You already know that in Web2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;users sign up
&lt;/li&gt;
&lt;li&gt;you store their credentials
&lt;/li&gt;
&lt;li&gt;you authenticate requests
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Web3, your &lt;strong&gt;wallet replaces all of that&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wallet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your account (but you control it, not a platform)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Public Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your user ID or username&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Private Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your cryptographic identity — used to prove ownership and sign actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Signing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Logging in / proving who you are&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl22r065tp9zws3gfhmrl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl22r065tp9zws3gfhmrl.jpg" alt="Wallets replace accounts" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key difference is simple but important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Instead of logging in to a server, you prove who you are by signing requests with your private key.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Data: The Blockchain Is the Database
&lt;/h3&gt;

&lt;p&gt;You already understand databases, APIs, and writes.&lt;/p&gt;

&lt;p&gt;The blockchain is just a very different kind of database.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Blockchain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A shared, append-only database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transaction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A write operation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Node&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A server running the database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gas / Fees&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paying for compute or writes, just like paying for API calls or cloud compute&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What changes here isn’t what you’re doing but, instead, the constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writes are &lt;strong&gt;public&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;writes are &lt;strong&gt;permanent&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;writes &lt;strong&gt;cost money&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That can make you think much more carefully about what you store and when.&lt;/p&gt;




&lt;h3&gt;
  
  
  Logic: Smart Contracts Are Your Backend
&lt;/h3&gt;

&lt;p&gt;You already write backend code that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;processes requests
&lt;/li&gt;
&lt;li&gt;enforces rules
&lt;/li&gt;
&lt;li&gt;updates data
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Smart contracts do the same thing.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Smart Contract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Backend logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Program (on Solana)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A deployed service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Calling a contract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Making an API request&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The important shift:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t control the runtime once it’s deployed.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Value: Ownership Is Built In
&lt;/h3&gt;

&lt;p&gt;In Web2, ownership is just a database entry you or someone else controls.&lt;/p&gt;

&lt;p&gt;In Web3, it’s enforced by the system itself.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Money or API credits that aren’t tied to a single service (like Stripe balance, but portable and user-owned)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NFT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Like owning a domain name, it's a unique asset with verifiable ownership (and not just a picture of an ape)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wallet balance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your bank balance but without a bank controlling it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  In Web2, ownership is just a row in someone's database. In Web3, it’s enforced by the network and you can’t change it manually.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Apps: Same Shape, Different Backend
&lt;/h3&gt;

&lt;p&gt;At a high level, Web3 apps still look familiar.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;dApp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A web app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RPC endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your backend API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Explorer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A read-only database viewer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mainnet / Devnet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production / staging&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The frontend is still yours.&lt;/p&gt;

&lt;p&gt;The backend is now a public network.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Actually Changes
&lt;/h2&gt;

&lt;p&gt;If this all feels surprisingly familiar, that’s the point.&lt;/p&gt;

&lt;p&gt;Much of Web3 isn't a completely new model, instead it's a new way of thinking about things you already know well. The core differences are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You control identity (wallets instead of accounts)
&lt;/li&gt;
&lt;li&gt;You pay for writes (like calls to a paid API)
&lt;/li&gt;
&lt;li&gt;You deploy immutable logic (contracts instead of editable app code)
&lt;/li&gt;
&lt;li&gt;You rely on shared infrastructure (networks instead of owned backends)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Only Way This Really Clicks
&lt;/h2&gt;

&lt;p&gt;Reading helps. But it won’t fully land until you try it.&lt;/p&gt;

&lt;p&gt;The moment you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate a keypair
&lt;/li&gt;
&lt;li&gt;send a transaction
&lt;/li&gt;
&lt;li&gt;see it appear on-chain
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…all of this terminology stops feeling abstract.&lt;/p&gt;

&lt;p&gt;And we're here to help with that. &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; is a hands-on daily coding challenge that takes you from no Web3 experience to able to build with Solana. &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join free&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc7g964gmdjo20532smx.png" alt="100 Days of Solana" width="540" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>solana</category>
      <category>learning</category>
    </item>
    <item>
      <title>100 Daily Challenges to Learn Web3 and Solana</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 17 Apr 2026 15:14:12 +0000</pubDate>
      <link>https://dev.to/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i</link>
      <guid>https://dev.to/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i</guid>
      <description>&lt;p&gt;Web3 is different. But it doesn't have to be hard.&lt;/p&gt;

&lt;p&gt;Most of what you do in a Web3 ecosystem, like Solana, maps directly to things you already understand from building web and mobile apps. You just need to learn some new terminology and assumptions first.&lt;/p&gt;

&lt;p&gt;That's why we're launching &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt;! It's a free, daily programming challenge that will take you from Web3 curiosity to creating your own projects with Solana.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  
&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Here's the short version of everything you need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start date:&lt;/strong&gt; April 20th but you can join any time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What you’ll learn:&lt;/strong&gt; How Solana works in practice, including transactions, accounts, programs, and how to build real apps on top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How it works:&lt;/strong&gt; One focused challenge per day (~30–60 mins), each building on the last.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register Now&lt;/a&gt;
&lt;/p&gt;


&lt;/div&gt;


&lt;h2&gt;
  
  
  One Theme Each Week
&lt;/h2&gt;

&lt;p&gt;We’ve structured 100 Days of Solana into Arcs (weekly themes) and Epochs (bigger milestones).&lt;/p&gt;

&lt;p&gt;Each Arc runs Monday to Sunday and focuses on one topic, starting with &lt;em&gt;Identity and Your First Wallet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If you're busy one week, you can cover just the basics on Monday and Tuesday. But to make the most of the event, it’s worth aiming for all seven days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Big Stories
&lt;/h2&gt;

&lt;p&gt;Each set of Arcs builds into a larger milestone that we’re calling Epochs.&lt;/p&gt;

&lt;p&gt;Those Epochs take you from understanding how data works on Solana to building and shipping your own applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reading and Writing Data&lt;/li&gt;
&lt;li&gt;Owning and Moving Data&lt;/li&gt;
&lt;li&gt;Building Programs, Making Contracts&lt;/li&gt;
&lt;li&gt;Shipping and Exploring&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By the end, you'll have learned what you can build with Solana, why you'd choose Solana, and how to put all the pieces together.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Community
&lt;/h2&gt;

&lt;p&gt;You won’t be doing this alone.&lt;/p&gt;

&lt;p&gt;When you &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;register&lt;/a&gt;, you’ll join the 100 Days of Solana Discord, where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask questions and get help from the event team
&lt;/li&gt;
&lt;li&gt;Share your progress
&lt;/li&gt;
&lt;li&gt;Connect with other developers working through the same challenges
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll also run live AMAs, publish blog posts here on &lt;a href="https://dev.to"&gt;DEV&lt;/a&gt;, and more.&lt;/p&gt;

&lt;p&gt;There’ll be opportunities to win prizes, get your work showcased, and even take part in MLH’s Solana Fellowship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Solana?
&lt;/h2&gt;

&lt;p&gt;We’re using Solana for this program because it works well for learning by building.&lt;/p&gt;

&lt;p&gt;Transactions are fast and inexpensive, so you can try things out, make mistakes, and see what happens without waiting around or worrying about cost.&lt;/p&gt;

&lt;p&gt;It’s also one of the platforms we see used most often at MLH hackathons. Developers pick it because they can actually build and ship something in a short amount of time.&lt;/p&gt;

&lt;p&gt;That makes it a good place to go from “I kind of get this” to actually putting something together yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get signed-up
&lt;/h2&gt;

&lt;p&gt;Register now so you don't miss our announcement!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register for 100 Days of Solana&lt;/a&gt;
&lt;/p&gt;




</description>
      <category>web3</category>
      <category>solana</category>
      <category>programming</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Wed, 18 Feb 2026 14:35:34 +0000</pubDate>
      <link>https://dev.to/matthewrevell/-11ei</link>
      <guid>https://dev.to/matthewrevell/-11ei</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-story__hidden-navigation-link"&gt;The Future of Software Has a Lot More Builders. They’re Going to Need a Home.&lt;/a&gt;
    &lt;div class="crayons-article__cover crayons-article__cover__image__feed"&gt;
      &lt;iframe src="https://www.youtube.com/embed/gGUkTiiCqxE" title="The Future of Software Has a Lot More Builders. They’re Going to Need a Home."&gt;&lt;/iframe&gt;
    &lt;/div&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/mlh"&gt;
            &lt;img alt="Major League Hacking (MLH) logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2310%2F828f0108-477d-4d0d-8812-973f182358b4.jpg" class="crayons-logo__image" width="800" height="800"&gt;
          &lt;/a&gt;

          &lt;a href="/jonmarkgo" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F379485%2Fd1c1869a-68d7-4536-a542-7775cb27d3e9.jpeg" alt="jonmarkgo profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/jonmarkgo" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Jon Gottfried
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Jon Gottfried
                
              
              &lt;div id="story-author-preview-content-3265508" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/jonmarkgo" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F379485%2Fd1c1869a-68d7-4536-a542-7775cb27d3e9.jpeg" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Jon Gottfried&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/mlh" class="crayons-story__secondary fw-medium"&gt;Major League Hacking (MLH)&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" id="article-link-3265508"&gt;
          The Future of Software Has a Lot More Builders. They’re Going to Need a Home.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/news"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;news&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;98&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              19&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>discuss</category>
      <category>news</category>
      <category>ai</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
