Skip to main content

2 posts tagged with "Paymaster"

Paymaster in account abstraction

View all tags

Solana's Kora Signing Node Is the Quiet UX Pivot That Could Reset the Consumer Crypto Race

· 12 min read
Dora Noda
Software Engineer

For five years, "insufficient SOL for transaction" has been Solana's most expensive error message. Every consumer app that ever pitched a non-crypto user lost some percentage of them right there — at the checkout step where a stranger has to acquire a second token just to spend the first one. In April 2026, the Solana Foundation finally shipped the answer: Kora, a fee relayer and signing node that lets dApps sponsor transactions natively, pay fees in any SPL token, and outsource signing to TEEs or KMS-backed vaults. It is not a flashy launch. It is a plumbing upgrade. And plumbing upgrades are how Base and Abstract quietly captured the last twelve months of consumer onboarding.

The question is no longer whether Solana can match the gasless UX of EVM consumer chains. Kora makes that part trivial. The question is whether closing the last-mile gap is enough to win back the developers who already built somewhere else.

What Kora Actually Ships

Strip away the marketing and Kora is three things bolted together: a transaction relayer, a remote signer, and a policy engine. A dApp constructs a transaction, sets a Kora node as the fee payer, the user signs the payload from an embedded wallet, and the Kora operator co-signs and broadcasts. Validators still get paid in SOL. The user never holds any.

What makes it interesting is the validation layer. A Kora node does not blindly relay anything users hand it. It does three checks before signing:

  • Instruction validation against the associated Solana programs, so malformed or malicious instructions get rejected before they hit a leader.
  • Oracle-backed fee adequacy, comparing the offered SPL token amount against current SOL price plus operator margin, so the relayer is never running at a loss.
  • Allowlist and blocklist enforcement at the program and token level, so an operator running a Kora node for a single dApp never accidentally sponsors a transaction targeting some random unaudited contract.

The signing path is where the architecture gets ambitious. Kora supports remote signing through Turnkey and AWS KMS out of the box, which means the private key that pays fees never lives on the relayer's disk. For a fintech building on Solana, that is the difference between "we rolled our own paymaster and crossed our fingers" and "our key custody story passes a SOC 2 audit."

The whole thing has been audited and differentially fuzz-tested by Runtime Verification, which is the kind of detail you mention only when you expect institutions to read the line item.

Why "Native" Beats "Smart Contract" Here

The temptation is to compare Kora to ERC-4337 and assume Solana is catching up. The architectures are doing different things, and the difference matters.

ERC-4337 is account abstraction implemented as a parallel system on top of Ethereum. It introduces a separate mempool, a UserOperation object, a bundler role, and an EntryPoint contract — none of which the base protocol natively understands. Bundlers package user operations, paymasters sponsor fees, and an on-chain contract enforces validation. It works, and it has been deployed across Ethereum mainnet and major L2s, but it is a six-year construction project to retrofit a UX feature that the protocol never anticipated.

Solana's design ate that complexity at the protocol layer years ago. Every transaction already has a feePayer field. Partial signatures are native. Programs can validate arbitrary instructions. Kora is not a bundler-and-paymaster construction; it is a node operator that fills in the feePayer slot and signs with one of the partial signatures the protocol already accepts.

The practical consequence is latency and developer surface area. ERC-4337 transactions go through a separate mempool with its own ordering rules and propagation delays. Kora transactions go through the same path as every other Solana transaction, with the same sub-400ms finality. There is no bundler arbitrage market to think about, no EntryPoint contract version to track, no UserOperation gas estimation to debug.

What this buys Solana developers is something close to "set the fee payer field, ship the dApp." What it loses is some of the optionality EVM smart accounts get for free — multi-key auth, batched calls, on-chain session policies — though much of that is being built separately on Solana through PDAs and program-controlled accounts.

The Last-Mile Gap Solana Actually Had

For all the talk about Solana's developer momentum in 2025 and 2026, the consumer wallet layer was the part that lagged. The infrastructure stack matured fast: Pump.fun's DEX volume topped $2B in Q1 2026, Jito and Marinade dominate liquid staking, Tensor turned NFT trading into a professional terminal. But every one of those products had to ship its own answer to "the user has no SOL."

The workarounds got creative. Pump.fun routed initial token acquisitions through embedded onramps. Jito pre-funded user accounts with dust amounts. Tensor leaned on Phantom and Backpack to handle the SOL acquisition step before users ever reached the bid book. Each of these worked individually and none of them composed. A user who onboarded through Pump.fun's flow did not arrive at Tensor with a fee-paying balance.

Meanwhile Base shipped Coinbase Smart Wallet's passkey flow, free gas sponsorship through Coinbase Developer Platform, and a developer SDK that hides the entire concept of a private key behind email login. Abstract took the same idea further with embedded wallets that feel like Web2 apps. The combined pitch to a consumer-app developer in 2025 was: build on Base, your users will not know they're onchain, and we'll pay the fees while you scale.

Kora does not replicate that pitch line for line. What it does is remove the architectural reason a Solana dApp could not write the same pitch. With Kora, a Solana team can now offer:

  • Email or passkey signup through Privy, Turnkey, or Coinbase Embedded Wallets.
  • Zero SOL balance required to transact.
  • Fees paid in USDC, BONK, or the dApp's native token if it has one.
  • Sub-second finality with no bundler in the path.

The pieces existed before. Octane was the open-source ancestor. Circle's Gas Station, Openfort, Portal, Gelato, Biconomy, and a half-dozen other vendors offered fee relaying as a service. What Kora changes is that the Solana Foundation itself is now shipping the standard, audited, KMS-compatible reference implementation. That removes "which third-party paymaster do we trust" from the decision tree for every team that was previously rolling their own or paying a vendor.

The Vendor Layer Above Kora

Where things get interesting is what happens to the embedded wallet vendors that already built around the gap Kora just closed.

Privy, acquired by Stripe in June 2025, has been the consumer-app wallet of choice for Solana dApps that want email login. Solana is officially a secondary chain for Privy — the depth is on EVM — but the embedded wallet flow extends to Solana, and Privy already supports configuring a fee payer wallet that the app manages. Kora does not replace Privy; it gives Privy a standardized backend to plug into rather than each customer running their own paymaster service.

Turnkey is the security-first embedded signer that pairs naturally with Kora's remote signing API. Turnkey explicitly does not include paymaster infrastructure, so Solana teams that want hardware-isolated keys plus gasless UX have been forced to bolt two vendors together. Kora collapses that integration.

Dynamic, acquired by Fireblocks in 2025, brings multi-chain auth to institutional teams. The Fireblocks-backed positioning makes Dynamic the natural choice for fintechs that need both Solana and EVM coverage with enterprise compliance. Kora gives Dynamic a clean Solana fee-abstraction story that does not require Fireblocks to ship a competing paymaster.

Coinbase Developer Platform is the awkward one. Coinbase has invested heavily in making Base the default consumer chain through Coinbase Smart Wallet, free Base gas, and the embedded wallet SDK. Kora narrows the differentiation Base has been selling, especially for apps that want USDC-native flows where Solana already has scale advantages.

The likely outcome is that Kora becomes the default Solana backend for every embedded wallet vendor that did not want to operate a paymaster service themselves. The vendors compete on auth UX, key management, and policy controls. Kora handles the fee relay underneath. That is healthier for the ecosystem than the prior state where every consumer Solana dApp made an independent vendor decision and had to evaluate the security of each candidate's homegrown relayer.

What This Does and Does Not Solve

Kora closes one gap definitively and leaves several others open. Worth being precise about which is which.

What Kora solves:

  • The "user must hold SOL" UX cliff for any dApp willing to subsidize fees in another token.
  • The "build vs buy a paymaster" decision for teams that previously had to choose between operational burden and vendor lock-in.
  • The institutional acceptability gap, since the audit and KMS support let regulated entities run Kora nodes without rolling their own.

What Kora does not solve:

  • Wallet acquisition itself — users still need an embedded wallet from somewhere, whether Phantom, Privy, Turnkey, or Coinbase.
  • Account abstraction primitives like batched calls and session keys, which are still being assembled separately on Solana through PDAs and other program-level patterns.
  • The economic question of who pays for the SOL that Kora operators front. For a dApp with token revenue or a stablecoin float, this is fine; for a free product, gas sponsorship is just a customer acquisition cost.
  • Cross-chain UX, which still requires the user to interact with a bridge or a chain abstraction layer like LayerZero, Wormhole, or Across.

The "gasless infrastructure as protocol primitive" thesis cuts both ways. Solana now has the cleanest native fee abstraction story of any major chain. It also means the differentiation moves up the stack to wallet UX, recovery flows, and account abstraction features where EVM has a multi-year head start.

The Strategic Read for Builders

For a team picking a chain in mid-2026, the calculus has shifted. Twelve months ago, the consumer-onboarding answer was Base, Abstract, or one of the new EVM consumer chains, full stop. Solana had developer mindshare and infrastructure momentum but lost retail users to the SOL acquisition step. That is no longer true.

A consumer dApp launching today on Solana with Privy or Turnkey on the front end and Kora on the back end has functionally the same UX surface as the equivalent stack on Base. Email login, gasless transactions, fee payment in USDC, sub-second finality. The remaining differences are the runtime model, the tooling ecosystem, and the available liquidity. For an app that wants Solana's throughput and DEX depth, the UX argument for picking EVM has gotten substantially weaker.

For teams already shipping on Base, Kora does not change the immediate decision. It does change the long-term competitive pressure. If the consumer dApps with the cleanest UX start showing up on Solana because the new infrastructure is one less integration to worry about, the gravity around Base's consumer-onboarding moat starts to shift.

The honest read is that Kora is necessary but not sufficient. It removes a specific reason developers were not picking Solana for consumer apps. It does not by itself create a new reason to pick Solana. The next two quarters will show whether the embedded-wallet vendors actually default to Kora, whether new consumer dApps cite it as a reason for their chain choice, and whether the existing EVM consumer chains respond by improving their own infrastructure stories.

Either way, "user must acquire SOL before transacting" is finally a legacy problem, not a current one. That alone is worth shipping.


BlockEden.xyz operates production-grade Solana RPC infrastructure for teams building consumer dApps, payment rails, and trading systems. If you're integrating gasless flows or scaling a Solana product, explore our API marketplace for low-latency endpoints designed for the next generation of consumer crypto.

Sources

Building Gas-less Experiences with Sui Paymaster: Architecture and Implementation Guide

· 10 min read
Dora Noda
Software Engineer

Imagine a world where users can interact with your dApp seamlessly, without needing to hold any native tokens (SUI). This is no longer a distant dream. With Sui's Gas Station (also known as a Paymaster), developers can cover gas fees on behalf of their users, completely removing one of the biggest barriers for new entrants to Web3 and enabling a truly frictionless on-chain experience.

This article provides a complete guide to upgrading your dApp to be gas-less. We'll dive deep into the core concepts of the Sui Paymaster, its architecture, implementation patterns, and best practices.

1. Background and Core Concepts: What is a Sponsored Transaction?

In the world of blockchain, every transaction requires a network fee, or "gas." For users accustomed to the seamless experiences of Web2, this is a significant cognitive and operational hurdle. Sui addresses this challenge at the protocol level with Sponsored Transactions.

The core idea is simple: allow one party (the Sponsor) to pay the SUI gas fees for another party's (the User) transaction. This way, even if a user has zero SUI in their wallet, they can still successfully initiate on-chain actions.

Paymaster ≈ Gas Station

In the Sui ecosystem, the logic for sponsoring transactions is typically handled by an off-chain or on-chain service called a Gas Station or Paymaster. Its primary responsibilities include:

  1. Evaluating the Transaction: It receives a user's gas-less transaction data (GasLessTransactionData).
  2. Providing Gas: It locks and allocates the necessary gas fee for the transaction. This is usually managed through a gas pool composed of many SUI Coin objects.
  3. Generating a Sponsor Signature: After approving the sponsorship, the Gas Station signs the transaction with its private key (SponsorSig), certifying its willingness to pay the fee.
  4. Returning the Signed Transaction: It sends back the TransactionData, which now includes the gas data and the sponsor's signature, to await the user's final signature.

In short, a Gas Station acts as a refueling service for your dApp's users, ensuring their "vehicles" (transactions) can travel smoothly on the Sui network.

2. High-Level Architecture and Interaction Flow

A typical gas-less transaction involves coordination between the user, the dApp frontend, the Gas Station, and a Sui Full Node. The interaction sequence is as follows:

Flow Breakdown:

  1. The User performs an action in the dApp UI, which constructs a transaction data package without any gas information.
  2. The dApp sends this data to its designated Gas Station to request sponsorship.
  3. The Gas Station verifies the request's validity (e.g., checks if the user is eligible for sponsorship), then populates the transaction with a Gas Coin and its signature, returning the semi-complete transaction to the dApp.
  4. The User sees the full transaction details in their wallet (e.g., "Purchase one NFT") and provides the final signature. This is a crucial step that ensures the user maintains consent and control over their actions.
  5. The dApp broadcasts the complete transaction, containing both the user's and the sponsor's signatures, to a Sui Full Node.
  6. After the transaction is finalized on-chain, the Gas Station can confirm this by listening for on-chain events or receipts, then notify the dApp backend via a webhook to close the loop on the business process.

3. Three Core Interaction Models

You can use the following three interaction models individually or in combination to suit your business needs.

Model 1: User-Initiated → Sponsor-Approved (Most Common)

This is the standard model, suitable for the vast majority of in-dApp interactions.

  1. User constructs GasLessTransactionData: The user performs an action within the dApp.
  2. Sponsor adds GasData and signs: The dApp backend sends the transaction to the Gas Station, which approves it, attaches a Gas Coin, and adds its signature.
  3. User reviews and gives final signature: The user confirms the final transaction details in their wallet and signs it. The dApp then submits it to the network.

This model strikes an excellent balance between security and user experience.

Model 2: Sponsor-Initiated Airdrops/Incentives

This model is perfect for airdrops, user incentives, or batch asset distributions.

  1. Sponsor pre-fills TransactionData + signs: The Sponsor (typically the project team) pre-constructs most of the transaction (e.g., airdropping an NFT to a specific address) and attaches its sponsorship signature.
  2. User's second signature makes it effective: The user only needs to sign this "pre-approved" transaction once for it to be executed.

This creates an extremely smooth user experience. With just one click to confirm, users can claim rewards or complete tasks, dramatically increasing the conversion rates of marketing campaigns.

Model 3: Wildcard GasData (Credit Line Model)

This is a more flexible and permission-based model.

  1. Sponsor transfers a GasData object: The Sponsor first creates one or more Gas Coin objects with a specific budget and transfers ownership directly to the user.
  2. User spends freely within the budget: The user can then freely use these Gas Coins to pay for any transactions they initiate within the budget's limits and validity period.
  3. Gas Coin is returned: Once depleted or expired, the Gas Coin object can be designed to be automatically destroyed or returned to the Sponsor.

This model is equivalent to giving the user a limited-time, limited-budget "gas fee credit card," suitable for scenarios requiring a high degree of user autonomy, such as offering a free-to-play experience during a game season.

4. Typical Application Scenarios

The power of the Sui Paymaster lies not just in solving the gas fee problem, but also in its ability to deeply integrate with business logic to create new possibilities.

Scenario 1: Paywalls

Many content platforms or dApp services require users to meet certain criteria (e.g., hold a VIP NFT, reach a certain membership level) to access features. The Paymaster can implement this logic perfectly.

  • Flow: A user requests an action → the dApp backend verifies the user's qualifications (e.g., NFT ownership) → if eligible, it calls the Paymaster to sponsor the gas fee; if not, it simply denies the signing request.
  • Advantage: This model is inherently resistant to bots and abuse. Since the sponsorship decision is made on the backend, malicious users cannot bypass the qualification check to drain gas funds.

Scenario 2: One-Click Checkout

In e-commerce or in-game purchase scenarios, simplifying the payment process is critical.

  • Flow: The user clicks "Buy Now" on a checkout page. The dApp constructs a transaction that includes the business logic (e.g., transfer_nft_to_user). The user only needs to sign to approve the business transaction in their wallet, without worrying about gas. The gas fee is covered by the dApp's Sponsor.
  • Advantage: You can encode business parameters like an order_id directly into the ProgrammableTransactionBlock, enabling precise on-chain attribution for backend orders.

Scenario 3: Data Attribution

Accurate data tracking is fundamental to business optimization.

  • Flow: When constructing the transaction, write a unique identifier (like an order_hash) into the transaction's parameters or into an event that will be emitted upon execution.
  • Advantage: When the Gas Station receives the on-chain receipt for a successful transaction, it can easily extract this order_hash by parsing the event or transaction data. This allows for a precise mapping between on-chain state changes and specific backend orders or user actions.

5. Code Skeleton (Based on the Rust SDK)

Here is a simplified code snippet demonstrating the core interaction steps.

// Assume tx_builder, sponsor, and wallet have been initialized

// Step 1: On the user or dApp side, construct a gas-less transaction
let gasless_transaction_data = tx_builder.build_gasless_transaction_data(false)?;

// Step 2: On the Sponsor (Gas Station) side, receive the gasless_transaction_data,
// fill it with a Gas Coin, and return the transaction data with the Sponsor's signature.
// The sponsor_transaction_block function handles gas allocation and signing internally.
let sponsored_transaction = sponsor.sponsor_transaction_block(gasless_transaction_data, user_address, gas_budget)?;

// Step 3: The dApp sends the sponsored_transaction back to the user,
// who signs and executes it with their wallet.
let response = wallet.sign_and_execute_transaction_block(&sponsored_transaction)?;

For a complete implementation, refer to the official Sui documentation's Gas Station Tutorial which offer out-of-the-box code examples.

6. Risks and Protection

While powerful, deploying a Gas Station in a production environment requires careful consideration of the following risks:

  • Equivocation (Double-Spending): A malicious user might try to use the same Gas Coin for multiple transactions in parallel, which would cause the Gas Coin to be locked by the Sui network. This can be effectively mitigated by assigning a unique Gas Coin per user or transaction, maintaining a blacklist, and rate-limiting signing requests.
  • Gas Pool Management: In high-concurrency scenarios, a single large-value Gas Coin can become a performance bottleneck. The Gas Station service must be capable of automatically splitting large SUI Coins into many smaller-value Gas Coins and efficiently reclaiming them after use. Professional Gas Station providers like Shinami offer mature, managed solutions for this.
  • Authorization and Rate Limiting: You must establish strict authorization and rate-limiting policies. For instance, manage sponsorship limits and frequencies based on user IP, wallet address, or API tokens to prevent the service from being drained by malicious actors.

7. Ecosystem Tools

The Sui ecosystem already offers a rich set of tools to simplify Paymaster development and deployment:

  • Official SDKs (Rust/TypeScript): Include high-level APIs like sponsor_transaction_block(), significantly reducing integration complexity.
  • Shinami Gas Station: Provides an all-in-one managed service, including automated Gas Coin splitting/reclaiming, detailed metrics monitoring, and webhook notifications, allowing developers to focus on business logic.
  • Enoki / Mysten Demos: The community and Mysten Labs also provide open-source Paymaster implementations that can be used as a reference for building your own service.

8. Implementation Checklist

Ready to upgrade your dApp to the gas-less era? Go through this checklist before you start:

  • Plan Your Funding Flow: Define the Sponsor's funding source, budget, and replenishment strategy. Set up monitoring and alerts for key metrics (e.g., gas pool balance, consumption rate).
  • Reserve Attribution Fields: When designing your transaction parameters, be sure to reserve fields for business identifiers like order_id or user_id.
  • Deploy Anti-Abuse Policies: You must implement strict authorization, rate-limiting, and logging mechanisms before going live.
  • Rehearse on Testnet: Whether building your own service or integrating a third-party Gas Station, always conduct thorough concurrency and stress testing on a testnet or devnet first.
  • Continuously Optimize: After launch, continuously track transaction success rates, failure reasons, and gas costs. Fine-tune your budget and strategies based on the data.

Conclusion

The Sui Paymaster (Gas Station) is more than just a tool for covering user gas fees. It's a powerful paradigm that elegantly combines a "zero SUI on-chain" user experience with the business need for "order-level on-chain attribution" within a single, atomic transaction. It paves the way for Web2 users to enter Web3 and provides developers with unprecedented flexibility for business customization.

With an increasingly mature ecosystem of tools and the current low gas costs on the Sui network, there has never been a better time to upgrade your dApp's payment and interaction flows to the gas-less era.