{"id":3103,"date":"2026-08-25T09:26:48","date_gmt":"2026-08-25T09:26:48","guid":{"rendered":"https:\/\/nownodes.io\/blog\/?p=3103"},"modified":"2026-08-25T09:26:49","modified_gmt":"2026-08-25T09:26:49","slug":"what-are-meta-transactions-erc-2771","status":"publish","type":"post","link":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/","title":{"rendered":"What Are Meta Transactions (ERC-2771)?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A meta transaction is a transaction a user signs but never sends. Instead of broadcasting it and paying gas themselves, they hand the signed message to a third party \u2014 a relayer \u2014 who wraps it into a real Ethereum transaction and pays the fee. ERC-2771 is the standard that makes this handoff safe, giving a smart contract a reliable way to tell who actually signed a request instead of trusting whoever happened to submit it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the short version: meta transactions let people use a dApp without holding any ETH first, and ERC-2771 is what stops a relayer from forging someone else&#8217;s signature in the process. The pattern shows up anywhere a project wants to remove the &#8220;buy gas before you can do anything&#8221; step from onboarding. This guide moves from the basic idea to the mechanics, the standard itself, and how it compares to newer alternatives like ERC-4337.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-gasless-actually-mean\">What Does &#8220;Gasless&#8221; Actually Mean?<\/h2>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-38-1024x683.png\" alt=\"\" class=\"wp-image-3104\" srcset=\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-38-1024x683.png 1024w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-38-300x200.png 300w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-38-768x512.png 768w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-38.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;Gasless&#8221; is a bit of a simplification \u2014 gas still gets paid, just not by the person signing the transaction. A meta transaction separates two things that normally happen together: authorizing an action and paying for it to run.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Meta transaction:<\/strong> a transaction whose signer is not the account that broadcasts it or pays for it. The user signs a message describing what they want to do; a separate relayer submits that message as a real transaction and covers the gas. See <a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-2771\" rel=\"nofollow noopener noreferrer\">EIP-2771<\/a> for the formal specification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a standard Ethereum transaction, one account does both jobs \u2014 it signs the transaction and pays the gas to get it mined. A meta transaction splits that in two, which sounds small but has a large practical effect: the end user no longer needs a native token balance to interact with a contract.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"a-relayed-transaction-vs-a-normal-one\">A Relayed Transaction vs. a Normal One<\/h3>\n\n\n<p class=\"wp-block-paragraph\">The mechanics are identical either way \u2014 same call, same target contract. What changes is who signs, who broadcasts, and who pays, laid out side by side below.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><\/th><th>Normal transaction<\/th><th>Meta transaction<\/th><\/tr><\/thead><tbody><tr><td>Who signs it<\/td><td>The user<\/td><td>The user<\/td><\/tr><tr><td>Who broadcasts it<\/td><td>The user&#8217;s wallet<\/td><td>A relayer<\/td><\/tr><tr><td>Who pays the gas<\/td><td>The user<\/td><td>The relayer (or a paymaster behind it)<\/td><\/tr><tr><td>Native token required from the user<\/td><td>Yes<\/td><td>No<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Everything about the underlying smart contract call stays identical. What changes is who&#8217;s holding the wallet that actually pushes the transaction onto the chain.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"why-do-users-need-someone-else-to-cover-gas\">Why Do Users Need Someone Else to Cover Gas?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">The problem meta transactions solve is a bootstrapping one: sending any Ethereum transaction \u2014 including the transaction that would buy you gas \u2014 requires already having some ETH in your wallet. A brand-new wallet with a zero balance is stuck before it starts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sachin Tomar, one of the engineers who co-authored EIP-2771 and later built gas-sponsorship tooling at Biconomy, put the problem plainly. &#8220;Having to hold ETH to interact with Dapps is a completely alien concept,&#8221; he wrote in a <a href=\"https:\/\/medium.com\/biconomy\/moving-forward-save-your-eth-pay-gas-in-erc20-tokens-7fcd9969d9ff\" rel=\"nofollow noopener noreferrer\">Biconomy engineering post<\/a>. &#8220;More than that, it&#8217;s a huge inconvenience.&#8221; That&#8217;s the gap meta transactions close \u2014 not the dollar cost of gas, but the requirement to already hold a specific token before doing anything at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is worth separating from the &#8220;gas is expensive&#8221; narrative, which is less true than it used to be \u2014 mainnet gas currently runs well under 1 gwei according to <a href=\"https:\/\/etherscan.io\/gastracker\" rel=\"nofollow noopener noreferrer\">Etherscan&#8217;s live tracker<\/a>, a fraction of a cent per transfer. The friction isn&#8217;t the price \u2014 it&#8217;s needing to own the right asset before your very first click.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That friction is measurable. One analysis of crypto activation funnels found only 32% of new wallet users complete a first transaction within their first week, versus more than 76% for typical fintech apps, according to a <a href=\"https:\/\/medium.com\/the-plg-insider\/cryptos-user-activation-crisis-a-product-case-study-on-coinbase-s-activation-funnel-e2a21b6eef48\" rel=\"nofollow noopener noreferrer\">product case study on Web3 onboarding<\/a>. Removing the &#8220;go acquire ETH first&#8221; step is one of the few onboarding fixes a dApp can make entirely on its own.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"who-actually-uses-gasless-transactions\">Who Actually Uses Gasless Transactions?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Meta transactions show up wherever a project wants a new user&#8217;s first action to feel like using a normal app, not a crypto wallet. A few patterns account for most real deployments:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Consumer and gaming dApps<\/strong> that want a sign-up flow without a &#8220;first, buy some ETH&#8221; step scaring off non-crypto users.<\/li>\n\n\n\n<li><strong>NFT platforms<\/strong>, where sponsoring the mint removes gas as a reason someone abandons a claim \u2014 a close cousin of lazy minting, which defers cost the same way for one mint function instead of a whole contract.<\/li>\n\n\n\n<li><strong>DAOs and governance tools<\/strong>, where members sign a vote off-chain and the platform submits it \u2014 Snapshot&#8217;s gasless voting is the most widely used example at the governance layer.<\/li>\n\n\n\n<li><strong>Wallet providers and embedded-wallet SDKs<\/strong>, which sponsor a user&#8217;s first few transactions before asking them to fund their own wallet.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\" id=\"how-does-a-relayed-transaction-work-step-by-step\">How Does a Relayed Transaction Work, Step by Step?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Underneath the different products, the flow stays close to identical. Here&#8217;s the sequence a typical ERC-2771 meta transactions follow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>The user signs an off-chain EIP-712 message<\/strong> describing the function call they want made, plus a nonce to stop it being replayed.<\/li>\n\n\n\n<li><strong>The signed message goes to a relayer<\/strong>, typically over a normal API call rather than anything broadcast to the network.<\/li>\n\n\n\n<li><strong>The relayer wraps the message in a real transaction<\/strong> and submits it to the chain, paying the gas itself.<\/li>\n\n\n\n<li><strong>A trusted forwarder contract receives it<\/strong>, checks the signature and nonce, and \u2014 if valid \u2014 calls the target contract with the signer&#8217;s address appended to the calldata.<\/li>\n\n\n\n<li><strong>The target contract reads that appended address<\/strong> through an overridden function instead of the raw caller, so its logic runs exactly as though the user had sent the transaction directly.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Before any of this reaches the chain, a relayer typically checks the call would actually succeed \u2014 the same kind of <a href=\"https:\/\/nownodes.io\/blog\/how-to-simulate-a-transaction-on-ethereum\/\">pre-broadcast simulation<\/a> a wallet runs before you sign, just triggered by the relayer instead of the end user. There&#8217;s little point paying gas for a signed request that&#8217;s only going to revert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-1024x683.png\" alt=\"\" class=\"wp-image-3106\" srcset=\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-1024x683.png 1024w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-300x200.png 300w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-39-768x512.png 768w, https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/image-39.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-a-trusted-forwarder-contract\">What Is a Trusted Forwarder Contract?<\/h3>\n\n\n<p class=\"wp-block-paragraph\"><strong>Trusted forwarder:<\/strong> a smart contract a recipient contract explicitly agrees to trust. It verifies a signed request&#8217;s signature and nonce, then calls the recipient with the real signer&#8217;s address appended to the calldata, as defined in <a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-2771\" rel=\"nofollow noopener noreferrer\">EIP-2771<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the piece that makes the pattern safe rather than just convenient. A contract that blindly trusted whatever address called it would let a relayer impersonate anyone, so the forwarder pattern instead makes the recipient check a signature before accepting who the &#8220;real&#8221; sender is. OpenZeppelin ships this as a ready-made building block \u2014 its <a href=\"https:\/\/docs.openzeppelin.com\/contracts\/5.x\/api\/metatx\" rel=\"nofollow noopener noreferrer\">ERC2771Context and ERC2771Forwarder contracts<\/a> are how most Solidity projects add support without writing forwarder logic from scratch.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"what-standard-makes-this-safe-to-implement\">What Standard Makes This Safe to Implement?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">ERC-2771, titled &#8220;Secure Protocol for Native Meta Transactions,&#8221; is the standard behind everything above. It was proposed on July 1, 2020 by eleven authors, including Ronan Sandford, Alex Forshtat, and Sachin Tomar, and now carries Final status on Ethereum&#8217;s standards track \u2014 meaning the specification is considered stable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem it standardizes is narrower than &#8220;how to do meta transactions&#8221; \u2014 specifically, how a contract recognizes the real sender when different relayers and forwarders are involved. Before ERC-2771, every project built its own version of that sender-verification logic, so a forwarder from one provider rarely worked with a contract built for another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The spec is also direct about the failure mode: &#8220;a malicious forwarder may forge the value of <code>_msgSender()<\/code> and effectively send transactions from any address.&#8221; That&#8217;s why a contract has to explicitly opt into trusting a specific forwarder rather than accepting one by default \u2014 get that trust relationship wrong, and every guarantee built on top of it collapses.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"who-pays-the-relayer-and-why-would-they-bother\">Who Pays the Relayer, and Why Would They Bother?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">A relayer needs a reason to keep fronting gas for other people&#8217;s transactions. That reason is usually a paymaster \u2014 logic, sometimes a server and sometimes a contract, that decides whether a given request is worth sponsoring.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Component<\/th><th>Role<\/th><\/tr><\/thead><tbody><tr><td>User<\/td><td>Signs an off-chain request; never touches gas<\/td><\/tr><tr><td>Relayer<\/td><td>Wraps the request in a real transaction and pays the gas<\/td><\/tr><tr><td>Trusted forwarder<\/td><td>On-chain contract that checks the signature and nonce<\/td><\/tr><tr><td>Paymaster<\/td><td>Decides whether to accept the request \u2014 by whitelist, ERC-20 payment, or the app&#8217;s own rules<\/td><\/tr><tr><td>Recipient contract<\/td><td>The dApp&#8217;s contract, reading the real sender through <code>_msgSender()<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.opengsn.org\/\" rel=\"nofollow noopener noreferrer\">OpenGSN<\/a>, the most widely used open implementation of this pattern, runs the relayer\/paymaster split across Ethereum, Polygon, Optimism, Arbitrum, Avalanche, BSC, and Gnosis Chain. A paymaster can reject spam, require extra verification, or simply charge a stablecoin instead of ETH \u2014 &#8220;gasless&#8221; for the end user doesn&#8217;t always mean free, just paid in a different token.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Running that relayer infrastructure is itself a node-access problem \u2014 reading the current nonce and gas price, broadcasting the signed result, watching for confirmation, the same RPC layer any dApp backend depends on. Providers like <a href=\"https:\/\/nownodes.io\/\">NOWNodes<\/a> offer that access across 120-plus networks, so a relayer service doesn&#8217;t need to run and sync its own node just to keep sponsoring transactions.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"how-does-this-compare-to-account-abstraction-erc4337\">How Does This Compare to Account Abstraction (ERC-4337)?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">ERC-2771 isn&#8217;t the only way to take gas out of a user&#8217;s hands, and it&#8217;s worth knowing where it stops being the right tool. ERC-4337, Ethereum&#8217;s account abstraction standard, solves an overlapping problem with a different architecture \u2014 instead of a trusted forwarder relaying signed calls to an unmodified contract, it replaces the user&#8217;s wallet itself with a smart contract account.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Factor<\/th><th>ERC-2771 (meta transactions)<\/th><th>ERC-4337 (account abstraction)<\/th><\/tr><\/thead><tbody><tr><td>Contract changes needed<\/td><td>Target contract must inherit a forwarder-aware base like ERC2771Context<\/td><td>None \u2014 the target contract stays untouched<\/td><\/tr><tr><td>Wallet type<\/td><td>Any regular wallet (EOA)<\/td><td>A smart contract account<\/td><\/tr><tr><td>Who verifies the request<\/td><td>The trusted forwarder contract<\/td><td>The wallet&#8217;s own validation logic, checked by a bundler<\/td><\/tr><tr><td>Sponsorship logic<\/td><td>Off-chain, inside relayer\/paymaster server code<\/td><td>On-chain, inside a paymaster contract<\/td><\/tr><tr><td>Best fit<\/td><td>One dApp sponsoring gas for its own contracts<\/td><td>Broader smart-account features: batching, session keys, flexible sponsorship<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Neither replaces the other cleanly. ERC-2771 is simpler to bolt onto one existing contract \u2014 inherit a base contract, point it at a forwarder, done. ERC-4337 asks for more setup, a smart contract wallet plus <a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-4337\" rel=\"nofollow noopener noreferrer\">bundler infrastructure<\/a>, but it never touches the target contract at all, since sponsorship logic lives at the wallet layer instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A newer piece of the roadmap blurs the line further. <a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-7702\" rel=\"nofollow noopener noreferrer\">EIP-7702<\/a>, live since Ethereum&#8217;s Pectra upgrade on May 7, 2025, lets a regular wallet temporarily delegate to smart-contract code and pick up features like sponsored transactions without switching wallets entirely. It still typically needs a bundler to relay anything, so the who-pays-who-verifies question doesn&#8217;t disappear \u2014 it just moves to a different standard.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"what-are-the-risks-of-relying-on-a-relayer\">What Are the Risks of Relying on a Relayer?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">The security of this whole pattern rests on one assumption: the trusted forwarder is actually trustworthy. A forwarder with a bug, or one the project doesn&#8217;t fully control, lets an attacker forge the appended sender address and act as anyone \u2014 exactly why it&#8217;s a natural candidate for a proper security audit before real funds depend on it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Liveness is a separate risk. A signed meta transaction still needs a relayer willing to submit it \u2014 if that relayer or its paymaster goes offline or runs dry, the message goes nowhere until another one picks it up, a form of centralization a plain, self-broadcast transaction doesn&#8217;t carry.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None of this shortens what happens on-chain, either. The call still has to succeed once it lands, gas still gets paid by someone, and a paymaster still needs rules sane enough not to get drained by spam dressed up as legitimate requests.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n<p class=\"wp-block-paragraph\">A meta transaction is a signature without a broadcast \u2014 the user authorizes an action, and a relayer turns that authorization into a real, paid-for transaction. ERC-2771 is what makes the handoff safe, giving contracts a standard way to trust an appended sender address instead of every provider inventing its own version of the same check.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether it&#8217;s the right tool depends on the project. A single dApp sponsoring gas for its own contracts can add ERC-2771 support with a few lines of inherited code; a team building broader wallet infrastructure is more likely to end up at ERC-4337 or EIP-7702 instead. Either way, the goal is the one Sachin Tomar described before the space had this many acronyms attached to it: nobody should have to solve a token-acquisition puzzle before they can use an application.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h3>\n\n<h3 class=\"wp-block-heading\" id=\"does-gasless-mean-something-different\">Does &#8220;Gasless&#8221; Mean Something Different?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Not exactly. &#8220;Gasless&#8221; describes what the user experiences, while &#8220;meta transaction&#8221; describes the specific ERC-2771 mechanism behind it. Other approaches, like ERC-4337 sponsorship, also produce a gasless experience without using meta transactions at all.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"do-i-have-to-trust-the-relayer-with-my-funds-or-private-key\">Do I Have to Trust the Relayer With My Funds or Private Key?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">No. A relayer only ever sees a signed message authorizing one specific action \u2014 it never receives your private key and can&#8217;t sign anything else on your behalf. The real trust decision sits with the forwarder contract&#8217;s logic, not with handing custody to the relayer.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"does-this-standard-work-on-chains-other-than-ethereum\">Does This Standard Work on Chains Other Than Ethereum?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Yes. It&#8217;s an application-level standard rather than a change to Ethereum&#8217;s protocol, so any EVM-compatible chain \u2014 Polygon, BNB Smart Chain, Arbitrum, and others \u2014 can run the same trusted-forwarder pattern.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"do-gasless-transactions-really-cost-the-user-nothing\">Do Gasless Transactions Really Cost the User Nothing?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Usually nothing in the network&#8217;s native token, but not always nothing at all. Some paymasters recover their cost by charging a stablecoin or the app&#8217;s own token instead of waiving the fee outright.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"is-this-still-the-right-standard-to-use-in-2026\">Is This Still the Right Standard to Use in 2026?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">For a single dApp sponsoring gas on its own contracts, yes \u2014 it&#8217;s simple and has years of production use behind it. Teams building broader smart-account infrastructure increasingly reach for ERC-4337 or EIP-7702 instead, since neither requires modifying every contract a user might touch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A meta transaction is a transaction a user signs but never sends. Instead of broadcasting it and paying gas themselves, they hand the signed message to a third party \u2014 a relayer \u2014 who wraps it into a real Ethereum transaction and pays the fee. ERC-2771 is the standard that makes this handoff safe, giving [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3105,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","_lmt_disableupdate":"","_lmt_disable":"","_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[102],"tags":[],"class_list":["post-3103","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev-report"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ERC-2771 Meta Transactions: How Gasless Transactions Work<\/title>\n<meta name=\"description\" content=\"Meta transactions let a relayer cover gas on a user&#039;s behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ERC-2771 Meta Transactions: How Gasless Transactions Work\" \/>\n<meta property=\"og:description\" content=\"Meta transactions let a relayer cover gas on a user&#039;s behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\" \/>\n<meta property=\"og:site_name\" content=\"NOWNodes Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-25T09:26:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T09:26:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/nodes_1-42.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u0410nastasia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nownodes\" \/>\n<meta name=\"twitter:site\" content=\"@nownodes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0410nastasia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\"},\"author\":{\"name\":\"\u0410nastasia\",\"@id\":\"https:\/\/nownodes.io\/blog\/#\/schema\/person\/0890ec68e813adecb93c18ee00e1e7a8\"},\"headline\":\"What Are Meta Transactions (ERC-2771)?\",\"datePublished\":\"2026-08-25T09:26:48+00:00\",\"dateModified\":\"2026-08-25T09:26:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\"},\"wordCount\":2300,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nownodes.io\/blog\/#organization\"},\"articleSection\":[\"Dev Report\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\",\"url\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\",\"name\":\"ERC-2771 Meta Transactions: How Gasless Transactions Work\",\"isPartOf\":{\"@id\":\"https:\/\/nownodes.io\/blog\/#website\"},\"datePublished\":\"2026-08-25T09:26:48+00:00\",\"dateModified\":\"2026-08-25T09:26:49+00:00\",\"description\":\"Meta transactions let a relayer cover gas on a user's behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.\",\"breadcrumb\":{\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/nownodes.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dev Report\",\"item\":\"https:\/\/nownodes.io\/blog\/category\/dev-report\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What Are Meta Transactions (ERC-2771)?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nownodes.io\/blog\/#website\",\"url\":\"https:\/\/nownodes.io\/blog\/\",\"name\":\"NOWNodes Blog\",\"description\":\"Your first-to-go source of development guides, web3 analytics and most recent news about NOWNodes\",\"publisher\":{\"@id\":\"https:\/\/nownodes.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nownodes.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nownodes.io\/blog\/#organization\",\"name\":\"NOWNodes Blog\",\"url\":\"https:\/\/nownodes.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nownodes.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2024\/02\/cropped-New-Logo-NN.png\",\"contentUrl\":\"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2024\/02\/cropped-New-Logo-NN.png\",\"width\":1164,\"height\":1164,\"caption\":\"NOWNodes Blog\"},\"image\":{\"@id\":\"https:\/\/nownodes.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/twitter.com\/nownodes\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nownodes.io\/blog\/#\/schema\/person\/0890ec68e813adecb93c18ee00e1e7a8\",\"name\":\"\u0410nastasia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nownodes.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1de24ab8dcdd7ec30f6adaf78b56bc1eda421f87575b7e103c8fc3fc4420e833?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1de24ab8dcdd7ec30f6adaf78b56bc1eda421f87575b7e103c8fc3fc4420e833?s=96&d=mm&r=g\",\"caption\":\"\u0410nastasia\"},\"url\":\"https:\/\/nownodes.io\/blog\/author\/nasty-nownodes\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ERC-2771 Meta Transactions: How Gasless Transactions Work","description":"Meta transactions let a relayer cover gas on a user's behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/","og_locale":"en_US","og_type":"article","og_title":"ERC-2771 Meta Transactions: How Gasless Transactions Work","og_description":"Meta transactions let a relayer cover gas on a user's behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.","og_url":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/","og_site_name":"NOWNodes Blog","article_published_time":"2026-08-25T09:26:48+00:00","article_modified_time":"2026-08-25T09:26:49+00:00","og_image":[{"width":2400,"height":1200,"url":"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2026\/08\/nodes_1-42.jpg","type":"image\/jpeg"}],"author":"\u0410nastasia","twitter_card":"summary_large_image","twitter_creator":"@nownodes","twitter_site":"@nownodes","twitter_misc":{"Written by":"\u0410nastasia","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#article","isPartOf":{"@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/"},"author":{"name":"\u0410nastasia","@id":"https:\/\/nownodes.io\/blog\/#\/schema\/person\/0890ec68e813adecb93c18ee00e1e7a8"},"headline":"What Are Meta Transactions (ERC-2771)?","datePublished":"2026-08-25T09:26:48+00:00","dateModified":"2026-08-25T09:26:49+00:00","mainEntityOfPage":{"@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/"},"wordCount":2300,"commentCount":0,"publisher":{"@id":"https:\/\/nownodes.io\/blog\/#organization"},"articleSection":["Dev Report"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/","url":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/","name":"ERC-2771 Meta Transactions: How Gasless Transactions Work","isPartOf":{"@id":"https:\/\/nownodes.io\/blog\/#website"},"datePublished":"2026-08-25T09:26:48+00:00","dateModified":"2026-08-25T09:26:49+00:00","description":"Meta transactions let a relayer cover gas on a user's behalf. See how ERC-2771 works, who uses it, and how it compares to ERC-4337 account abstraction.","breadcrumb":{"@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nownodes.io\/blog\/what-are-meta-transactions-erc-2771\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/nownodes.io\/blog"},{"@type":"ListItem","position":2,"name":"Dev Report","item":"https:\/\/nownodes.io\/blog\/category\/dev-report"},{"@type":"ListItem","position":3,"name":"What Are Meta Transactions (ERC-2771)?"}]},{"@type":"WebSite","@id":"https:\/\/nownodes.io\/blog\/#website","url":"https:\/\/nownodes.io\/blog\/","name":"NOWNodes Blog","description":"Your first-to-go source of development guides, web3 analytics and most recent news about NOWNodes","publisher":{"@id":"https:\/\/nownodes.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nownodes.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nownodes.io\/blog\/#organization","name":"NOWNodes Blog","url":"https:\/\/nownodes.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nownodes.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2024\/02\/cropped-New-Logo-NN.png","contentUrl":"https:\/\/nownodes.io\/blog\/wp-content\/uploads\/2024\/02\/cropped-New-Logo-NN.png","width":1164,"height":1164,"caption":"NOWNodes Blog"},"image":{"@id":"https:\/\/nownodes.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/nownodes"]},{"@type":"Person","@id":"https:\/\/nownodes.io\/blog\/#\/schema\/person\/0890ec68e813adecb93c18ee00e1e7a8","name":"\u0410nastasia","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nownodes.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1de24ab8dcdd7ec30f6adaf78b56bc1eda421f87575b7e103c8fc3fc4420e833?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1de24ab8dcdd7ec30f6adaf78b56bc1eda421f87575b7e103c8fc3fc4420e833?s=96&d=mm&r=g","caption":"\u0410nastasia"},"url":"https:\/\/nownodes.io\/blog\/author\/nasty-nownodes"}]}},"modified_by":"\u0410nastasia","_links":{"self":[{"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/posts\/3103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/comments?post=3103"}],"version-history":[{"count":1,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/posts\/3103\/revisions"}],"predecessor-version":[{"id":3107,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/posts\/3103\/revisions\/3107"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/media\/3105"}],"wp:attachment":[{"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/media?parent=3103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/categories?post=3103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nownodes.io\/blog\/wp-json\/wp\/v2\/tags?post=3103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}