7Block Labs
Blockchain Development

ByAUJay

Can You Break Down How Session Keys Actually Improve UX in Mobile dApps That Use WaaS?

Session keys are awesome because they enable mobile dApps to pre-authorize certain actions. That means users won’t have to face a confirmation pop-up every single time they take an action. On top of that, they make sure everything stays secure by setting spend limits, time frames, and approved lists right on the blockchain. When you combine those session keys with Wallet-as-a-Service (WaaS) and the newest wallet standards, you can dive into seamless one-tap experiences that don’t cost you a dime in gas fees. It’s all about convenience without compromising on security, so you can just focus on enjoying the ride! If you want to dive deeper into the details, take a look here: (alchemy.com). It's a great resource!


TL;DR (executive summary)

Session keys are these cool, temporary signers that your wallet uses--whether you have a smart account or a regular upgraded EOA. They’re super handy because they don’t stick around for long! They really simplify your life by reducing those pesky repetitive prompts. Plus, they let you enjoy some smooth background automation and help manage risks with on-chain limits. If you want to dive deeper into the topic, just click here to get all the details! If you’re diving into mobile dApps on WaaS platforms like Privy, Dynamic, Alchemy, and a few others, here’s what the winning strategy for 2026 is shaping up to be: kick things off with a passkey or a one-time password (OTP) login. Next, you’ll want to create or refresh a session key, making sure you’ve got those on-chain permissions all squared away. Then, go ahead and execute those batched calls using EIP-5792, and don’t forget to cover your gas fees with ERC-4337 paymasters. It's all about smooth sailing from here! This method really helps improve conversion rates and makes dealing with support issues a lot easier. Check it out here.


What exactly is a “session key” in 2026?

So, imagine a session key as a trusted buddy who's got the okay to hop into your account. But there’s a catch: this buddy has to stick to some ground rules. We're talking time limits, approved contracts or functions, caps on how much they can spend with native or ERC-20 tokens, and sometimes even a budget for gas fees or paymasters. It’s all about keeping things safe while still letting your buddy help out! So, all these policies are actually put into action on the blockchain thanks to the wallet's validation logic or its modules. (alchemy.com).

  • So, here's where you can check it out:
  • Client-side (device): This is great for bypassing those pesky confirmation steps! You can easily store it securely in your iOS Keychain or Android Keystore. (alchemy.com).
  • Server-side "agent" signer: This is awesome for automating tasks when a user isn’t around. Privy refers to these as “session signers.” They’re managed by server policies and need user approval, so everything stays secure! (docs.privy.io).

Great news! Pectra is set to launch on May 7, 2025, and it's bringing some exciting upgrades for EOAs. With the introduction of EIP-7702, you'll now have the ability to delegate to contract logic. How cool is that? This is really awesome! Even if you're still using an older address, you can totally take advantage of session-key style validation without the hassle of switching to a new smart account. How great is that? If you want all the juicy details, just click here. Happy reading!


Why mobile UX improves dramatically

You know how frustrating it can be when you're trying to log in on your phone, and it takes forever or feels like you're just going through the same steps over and over? Well, that's exactly why mobile users often bail out during the authentication process. Passkeys are seriously a game changer! They have an impressive success rate of 93% for sign-ins, which is pretty awesome. Plus, they make logging in about 73% faster compared to other methods. How great is that? When there’s less friction, more users can easily find their way through important steps. On top of that, session keys give you that convenient “one-tap” feel for actions on the blockchain. If you're curious to learn more, hop over to the FIDO Alliance. They’ve got some interesting insights about passkeys and the benefits for businesses!

What Changes in Practice:

  • Collaboration: Teams are really starting to team up more, tearing down those annoying barriers that tend to slow us all down. It's really about bouncing ideas around and making sure we're all talking with each other.
  • Flexibility: Companies are really starting to embrace flexibility, tuning in to what their employees actually need. This could mean offering remote work options or flexible hours, making it easier for everyone to strike that perfect balance between their work and home life.
  • Feedback Loops: These days, getting regular feedback is really becoming essential. Instead of just waiting around for those once-a-year performance reviews, people really want to get feedback on how they’re doing more regularly.
    It's really all about growing and getting better!
  • Tech Integration: There’s been a noticeable surge in how much we’re using technology lately. These days, tools that make collaboration, project management, and communication easier have become essential parts of our everyday lives.
  • Spotlight on Wellbeing: More and more companies are really putting the spotlight on mental health and overall wellbeing in the workplace. It’s great to see this shift happening! More and more companies are stepping up to provide support systems and resources designed to help their employees thrive and feel great.
  • Diversity and Inclusion: A growing number of organizations are genuinely putting in the effort to embrace diversity and foster inclusion. It’s great to see so many places stepping up! It's more than just a trendy term these days; it's really starting to become a fundamental piece of the company culture.
  • Agile Practices: You can really see the movement toward agile methodologies these days! This method really promotes quick adjustments and flexibility, which helps teams adapt to changes more easily.
  • Continuous Learning: People are really emphasizing the importance of keeping our education going and picking up new skills all the time. Companies really understand that keeping their employees in the loop and updated is super important for staying ahead in the game.
  • Sustainability Initiatives: A lot of organizations these days are really stepping up their game when it comes to sustainability. They’re making a solid commitment to go green, focusing on cutting down their environmental impact and pushing for eco-friendly policies. It's pretty inspiring to see!

By making these changes, companies are not just improving their workspaces; they're also setting the stage for a team that’s more engaged and productive.

  • Less fuss with modals: Just give the app a one-time pre-authorization for the scope you want, and then let it do its thing within those boundaries. Check it out here.
  • Atomic, single-prompt sequences: Thanks to EIP-5792, you can now bundle approvals and actions into a single, straightforward request for the user. So, for example, instead of doing multiple steps, it can just say something like, “Buy 1 NFT for a total of 0.” It really makes things a lot simpler! 02 ETH”). More info here.
  • No gas fees for you: With ERC-4337 paymasters, you can have your fees covered or even use tokens to pay. That means you don’t have to stress about having ETH on hand first! ” Learn more here.
  • Keep it safe when you delegate: You have the option to revoke or set an expiration on keys independently from your main wallet. This way, you can limit the risk based on your on-chain policy. If you want more information, just click here. You'll find all the details you need!

Where session keys fit in a WaaS architecture

WaaS (Wallet as a Service) providers give you handy features like built-in wallets and authentication. Plus, in many setups, you’ll come across session or delegated signing as well!

  • Alchemy Account Kit: This handy plugin makes it super easy for you to handle session keys. You can set different permissions, like time limits, access control lists (ACLs), and even manage ERC-20/native spending and gas limits. It's a great way to keep everything organized and secure! Plus, you can easily switch them up or take them back whenever you need to. The APIs include the wallet_createSession method along with SDK features for “grantPermissions.” Take a look at this awesome resource here. You might find it super helpful!
  • Privy: So, have you come across the term “session signers”? With Privy, you can whip those up directly from your server. Plus, everything’s locked down tight with a P-256 auth key, and you can tweak your own policies right in the dashboard. It’s super convenient! Plus, they come with a handy feature that helps manage user consent right out of the box. If you're looking for more info, check it out here. You'll find everything you need!
  • Dynamic: Okay, so this part focuses on embedded wallets. They make signing super easy because you can use session keys. The sessions link up with a JWT and are safely stored in an enclave for added security. They’ve even rolled out a React Native SDK, which is super handy for making things mobile-friendly! If you want to dive deeper into this, just click here for more info!
  • Biconomy/Rhinestone: Don’t miss their Smart Sessions feature! It’s specifically built for ERC‑7579 accounts, and it’s definitely worth taking a look. It's got that multi-chain vibe going on and is all about being policy-driven. Plus, it plays nicely with Kernel, Nexus, and Safe thanks to its handy adapters. Looking to explore more? Check this out here. You won’t want to miss it!
  • ZeroDev, thirdweb, and Gelato: These platforms provide some awesome AA stacks that highlight session key patterns found in ERC‑4337 and 7702 smart EOAs. If you’re interested, feel free to check it out here. There’s some cool stuff to discover!

Concrete mobile flows unlocked by session keys

Making in-app purchases is a breeze! Whether you're grabbing NFTs, credits, or some cool cosmetic items, it's all super simple. Alright, so here’s the deal: When you log in using a Passkey or an OTP, we’ll hook you up with a session key that lasts for 24 hours. This key is specifically tied to your marketplace contract and lets you use the “buy” function. Pretty straightforward, right? You can spend up to 20 USDC each day for your purchases. After that, it’s all about batch approving and making purchases with EIP-5792. Oh, and don’t worry--we’ve got the gas fees covered too!

  • Here’s the good news: You can skip all the annoying back-and-forth approval stuff and avoid that frustrating “buy failed due to fee” message. Instead, it’s really just one simple prompt that clearly lays out what you’re aiming to achieve. (eips.ethereum.org).
  1. Check out the DeFi “smart rebalance” feature right on your mobile device!
  • Flow: Alright, let’s break it down. Basically, the user kicks things off for a session by setting up a list of target routers they want to include, and they also put a cap on slippage at zero. Simple enough, right? You get a 2% back on each transaction, but keep in mind there’s a daily spending cap of 500 USDC. Oh, and don’t forget, this deal is only good for 3 hours! Once the price hits a certain level, the agent logs into the server to get things moving. Here’s the scoop: Now, you can actually get actions to kick in even if the app is running in the background. Pretty cool, right? Plus, there’s an extra layer of safety if the agent gets compromised, thanks to it being risk-bounded on-chain. So, it’s definitely a step up! (docs.privy.io).
  1. Engage in social or gaming activities without overwhelming everyone with spam. So, here’s how it works: when you go to “like,” “equip,” or “craft” something on certain contracts, we rely on a temporary device session key to make it all happen. Just a heads up--this key is only good for 60 minutes and has a limit of 50 calls. So, use it wisely!
  • Result: You can have real-time chats without the hassle of those pesky signatures. And if you decide to revoke it, the session wraps up immediately. (alchemy.com).

4) Cross‑chain orchestration (advanced)

  • Thanks to Biconomy’s Smart Sessions, you can easily manage permissions across different chains with just a single signature. How convenient is that? So, your agent can take care of follow-ups on Base, Optimism, and Polygon all with the same policy, which is pretty convenient! Take a look at the Biconomy docs and see what you think!

Implementation blueprint (mobile + WaaS)

Here's a quick example of the reference path we typically follow when collaborating with clients.

  1. Getting Your Authentication and Wallet Ready. You can start by using passkeys or an email OTP with your WaaS, whether it’s for your Coinbase Base Account, Dynamic, or Privy. Passkeys really boost your chances of successfully logging in and make the whole process super smooth! For more details, feel free to head over here. You’ll find everything you need!
  2. Generate a session key that comes with specific permissions. Let me give you a quick example of Alchemy--whether you’re using the SDK or JSON-RPC, it’s pretty straightforward. You can set an expiry date, pick your allowlist targets or selectors, and customize things like ERC-20/native tokens and gas limits. Plus, you even have the option to require a specific paymaster if you want! Just a quick reminder: make sure to rotate and revoke those keys whenever you need to! It's super important to keep everything secure. If you want more info, be sure to check out the details over at alchemy.com. It's got everything you need!
  3. Make sure to keep your session credentials safe on your device. You don’t want anyone snooping around and getting access to your stuff! If you're developing for iOS, stick with the Keychain. But if you're working on Android, you'll want to use the Keystore instead. Make sure to avoid using plain AsyncStorage. If you've got some important stuff that needs a little extra security, it’s smart to use biometric unlock options like Face ID. It adds that extra layer of protection for your high-value items. (reactnative.dev).

4) Execute with One Prompt and Sponsor Gas

  • Use EIP-5792's wallet_sendCalls to bring all of the user's intentions together in one seamless prompt.
    Take a look at what your wallet can do by using wallet_getCapabilities. This will give you info about features like atomicity and extra funds. It's pretty handy! (eips.ethereum.org).
  • You can go gasless by using an ERC-4337 paymaster, such as Biconomy or Pimlico, which also lets users pay with tokens. Just a quick reminder to lock in sponsorships with the contracts and methods that have been approved. Also, try to keep those API approvals on a short timeline! It’ll help keep everything running smoothly. (docs.erc4337.io).
  1. Set things up to run automatically when the user isn’t online. With Privy’s “server sessions,” your server can easily sign within the scope that the user has agreed to, all thanks to your P-256 authorization key. On top of that, there are rules set up to manage what the agent is allowed to do. Take a look at this link: (docs.privy.io). You'll find some useful info there!

“Smart accounts,” 7702 smart EOAs, and where sessions live

  • ERC‑4337 Smart Accounts: So, when it comes to session keys, validators and plugins, like those ERC‑7579 modules, usually take charge of making sure everything runs smoothly within the validateUserOp() function. So, basically, you can effortlessly use them across different wallets that stick to the same module standard. Hey, if you’re looking for more details, you should definitely check this out: docs.biconomy.io. It’s got a ton of useful info!
  • EIP‑7702 Smart EOAs: This is really cool! Now, you can configure your EOA to consistently link to wallet code. That means you can keep using the same address while still applying session policies, so there’s no need to shuffle your funds around. How convenient is that? Also, a bunch of SDKs like Alchemy, thirdweb, and Gelato are rolling out flows that back 7702 now. Pretty cool, right? Curious to learn more? Check out eips.ethereum.org for all the details!

The Best of Both Worlds: Many stacks are mixing 7702 for address continuity with 4337 (EntryPoint v0). 8) to take care of sponsorship and batching. What this means is that your app can effortlessly back both options by using EIP‑5792. Take a look for more info here: blog.ethereum.org. You'll find all the details you need!


Mobile security hardening checklist (what we recommend)

Device Key Handling

  • Make sure to use the system keystores; it's a good idea to choose non-exportable keys. For an extra layer of security, make sure to lock retrieval using biometrics, especially when you’re handling more sensitive stuff. If you're using an Android device, definitely take advantage of the Keystore with hardware-backed security whenever you get the chance. It's a smart move for keeping your data safe! If you want to dive deeper into the details, just click here. Happy exploring!

Scope Design

Let's aim for short session lifetimes--like just a few minutes to a couple of hours for trading and gaming. For anything e-commerce, we can stretch it to a full day. Hey there! Just wanted to highlight how crucial it is to always set up the following things:

  • Time window (validAfter/validUntil).
  • Target contracts and a rundown of the function selectors that are allowed.
  • Spend caps need to be established for every transaction and for certain time frames, covering both native tokens and ERC-20 tokens.
  • Let's set a gas budget cap, or at least make sure we have a reliable paymaster on hand. If you're curious to learn more, be sure to check out the details here. It's got some great info!

Revocation and Rotation

  • Make sure to set off some triggers whenever you install, update, or remove your session keys. Oh, and don’t forget to throw in an easy one-tap revoke option in the Settings for convenience! Don't forget to switch up your keys whenever the app gets an update or if you change devices. It's always a good idea to keep things secure! For more information, feel free to dive into the details here. Happy reading!

Server Sessions

Make sure to keep your server's "authorization key" safely tucked away in your HSM or TEE. It's a good idea to stick with signed requests, set some tight rate limits, and keep thorough audit logs. Trust me, it really helps in keeping everything secure and organized! Privy uses P-256 signed requests, so if you're setting up your own system, it's a good idea to stick with that method too. Take a look at the details right here: docs.privy.io. It’s got all the info you need!

Sponsorship Safety

So, when you're dealing with paymasters, it's pretty smart to establish temporary whitelists. Make sure you get those API approvals sorted--just remember to include the sender, call hash, deadline, and quota! Also, consider setting individual gas budgets for each user. It’s a great way to keep everything in check and avoid any funny business. Don't forget to keep an eye on those simulateValidation failures as well! For more info, check this out here. You’ll find all the details you need!

Telemetry

Make sure to monitor a few key things: how many prompts each user gets for their actions, how often they successfully log in, the time it takes them to complete tasks, and the mix of sponsored versus non-sponsored operations. Also, keep track of how often sessions get revoked or expire, along with any failed policy checks. It's all about getting a clear picture of user activity and ensuring everything's running smoothly! Here's the deal: passkeys can seriously amp up your login conversions. So, don’t forget to keep an eye on how they’re working in your on-chain processes, too! If you want to dive deeper into it, just click here. You'll find some interesting insights!


React Native “Buy with USDC” in One Tap

  • Setup: So, here’s the deal: we’re rolling with a dynamic embedded wallet plus a passkey. And for the Alchemy session key, we’ve got:
  • Allowlist: We've got the marketplace contract here, and we're using the buy(uint256) selector.
  • Limits: You can only spend up to 25 USDC each day. And just a heads up, gas fees will be covered by the paymaster only.
  • Expiry: Good for 24 hours. If you want the scoop on the details, just click here!
  • Execution: So, here’s the deal: the app will kick things off by calling wallet_sendCalls(approve+buy). After that, the Alchemy Paymaster steps in to cover the costs of the transaction. Users will get a quick summary of their purchase in a single prompt. If you want to learn more, check out this link.
  • Storage: We’ll stash your session info securely in the Keychain/Keystore, and to get it back, you’ll just need to use your biometrics. Easy peasy! Hey, if you're interested, you can take a look at the implementation right here. It's pretty straightforward!

Price-triggered rebalance in background

  • Setup: We’ve got our Privy server sessions all set up and running smoothly. You can swap up to 300 USDC each day using a DEX router, but keep in mind that there's a 2-hour expiration on those swaps. Oh, and just a heads up--the agent changes its key every single day! If you're looking for more info, you can find all the details right here.
  • Trigger: So, when the oracle reaches that threshold, the backend gives the green light within the set limits, and the gas fees are all taken care of. If the session expires, don’t worry--the action will just fail quietly until the app prompts you to renew it. If you're looking for more info, check it out here.

Multichain Quest Tracker (Advanced)

  • Getting Started: First things first, go ahead and install Biconomy Smart Sessions--just need to do it once! You can totally apply the same policy across Base, Optimism, and Polygon. It works for all of them! The session signer can easily submit proof calls on any of the three chains, and there are specific budgets established for each one. If you want to dive into the details, just click here. You’ll find everything you need!

EIP‑5792: the glue for fewer prompts

Hey, have you heard about EIP-5792? It’s pretty cool! This update lets you set up multi-call “intents” and figure out what your wallet can actually do. So, the awesome part is you only need to show a session grant once, and then you can execute everything in one smooth move. Super convenient, right? This really helps to minimize signature fatigue and cuts down on those annoying modal errors. Also, a bunch of wallets these days are jumping on board with 5792 methods, and they’re adding AA/7702 support too. It’s pretty cool to see all this progress! If you're looking for more details, you can check it out here.

Key Tips:

Don't forget to check if atomicity is supported and if there are any extra funds available by using wallet_getCapabilities.

  • If it’s possible, just give me a straightforward summary, something like “Approve 50 USDC + Buy Item #123”. Keep it clear and simple! (ercs.ethereum.org).

Emerging best practices we see winning in production

If you can, definitely use passkeys for your main login. It’s a great way to boost your security! They really make it easier for people to sign in and help reduce the number of support requests we get. Take a look at this: (fidoalliance.org). It's pretty interesting!

  • It’s a good idea to kick things off with gasless sessions (you know, the paymaster-gated ones) to avoid that annoying “no ETH” dilemma! If you're looking for more details, check this out: docs.erc4337.io. It's got all the info you need!
  • Make sure you limit session scopes strictly to your app. It's best to avoid handing out global approvals. Instead of just relying on contract addresses, try using allowlists that work with function selectors. It’s a smarter way to go! If you're curious and want to dive deeper into the topic, check it out here: alchemy.com. It’s got all the details you need! Try to get into the habit of switching up your session keys pretty regularly. If anything changes with your device--like if you upgrade your operating system, detect a jailbreak or root, or make adjustments to device enrollment--make sure to invalidate those keys. It’s a smart way to keep things secure!
  • Let’s make a user-friendly interface that clearly shows “Where can this session be used?” It should have a countdown timer for when it expires and any limits. Also, don’t forget to keep track of all the on-chain events for operations and revocations--gotta stay organized! More details here: (alchemy.com). To ensure everything runs smoothly across different devices, it’s a good idea to keep session metadata saved on the server. Just remember, don’t keep those session private keys around! Once you log back in, you can easily set things up again in no time. Want the details? Check it out right here: docs.privy.io.

Pitfalls to avoid

  • Try not to depend on sessions that last forever or are too lenient. Just a heads up, it's super important to keep track of every dimension. That means looking at time, targets, amounts, gas, and the whole chain. Don't leave anything out! (alchemy.com). Hey there! If you’re putting together your own custom relayer, it might be a good idea to check out the standard 4337 bundlers and paymasters. They could really help streamline things for you! That way, you won't feel stuck, and you can mix things up whenever you want! (docs.pimlico.io). Make sure to steer clear of saving your session materials in plain storage on your mobile. Honestly, it's best to stick with Keychain or Keystore. AsyncStorage just isn't the right choice for this. (reactnative.dev).
  • Don’t overlook EIP-5792. If you decide to skip this step, you might find yourself dealing with extra prompts and some hiccups along the way. Batching has become essential for making sure your wallet experience runs smoothly. (eips.ethereum.org).

Rollout plan (4-8 weeks)

  • Week 1: Kick things off by getting the passkey/OTP system up and running in WaaS. Next, let's figure out the top three user flows that we need to focus on. Finally, we'll set up session policies tailored for each of those flows. (v4.docs.dynamic.xyz).
  • Weeks 2-3: Let’s jump right into building those session APIs using Alchemy, Privy, and Dynamic. We’ll also set up some secure storage for devices and whip up a user-friendly interface to make revoking access a breeze. (alchemy.com).
  • Weeks 3-4: Let’s focus on moving the important flows over to EIP-5792. Also, we need to get a paymaster ready for those gasless defaults. (eips.ethereum.org).
  • Weeks 5-6: If we need to, let's step up the server-side automation with some strict quotas and keep an eye on those audit logs. Also, it’d be a good idea to run some load tests on the bundler and paymaster paths to see how they hold up. (docs.privy.io).
  • Weeks 7-8: Let’s kick off an A/B test comparing session keys to our control group. During this time, we’ll monitor how the prompts for each action are performing, track how long it takes to get things done, and keep an eye out for any customer support tickets that pop up.

The bottom line for decision‑makers

Session keys really simplify things by letting you turn your ideas into actions with way less back-and-forth. Plus, all the safety measures are safely tucked away on the blockchain. WaaS gives you secure keys and makes it easy to authenticate on all your devices. With session keys and EIP-5792, the whole experience feels super smooth. Plus, paymasters help remove that final big hurdle. The stacks are rock solid and standardized, plus they’re currently being used in various wallets. You could totally roll this out this quarter!

Need a design that’s ready for an audit? Well, look no further than 7Block Labs! We’re here to help you lay out your policies, integrate your WaaS seamlessly, and even set up an A/B-tested session key for both iOS and Android--all in just 6 to 8 weeks. Let's get started!


Sources and further reading

  • Alchemy Account Kit: Dive into the basics of session keys, understand what permissions you need, and take a look at the SDK and API references. (alchemy.com).
  • EIP‑5792 Wallet Call API: Let's explore batching and what it can do for us! (eips.ethereum.org).
  • ERC-4337 Docs: Check out the cool stuff about session patterns and paymasters. You'll also find some handy design patterns that help keep sponsorships secure! (docs.erc4337.io). Hey everyone! Just a quick heads up--make sure to circle May 7, 2025, on your calendar because that’s when the Pectra mainnet is set to launch. Don’t forget to take a look at the EF mainnet announcement for all the details! (eips.ethereum.org).
  • Privy session signers: So, these guys are server-side. Plus, we have dynamic embedded wallets and session keys for those on mobile. And don’t forget about the super useful React Native SDK! (docs.privy.io).
  • Biconomy/Rhinestone Smart Sessions: Dive into the details of ERC-7579 and get a grasp on how multichain orchestration actually operates. (docs.biconomy.io).
  • FIDO Alliance Passkey Index results: You’ve got to see the latest insights on how logins are converting and how fast they’re happening--it's pretty fascinating! Check it out here: (fidoalliance.org).
  • Mobile Secure Storage: Let’s dive into the Android Keystore and cover some key security tips for React Native! (developer.android.com).

Like what you're reading? Let's build together.

Get a free 30-minute consultation with our engineering team.

7BlockLabs

Full-stack blockchain product studio: DeFi, dApps, audits, integrations.

7Block Labs is a trading name of JAYANTH TECHNOLOGIES LIMITED.

Registered in England and Wales (Company No. 16589283).

Registered Office address: Office 13536, 182-184 High Street North, East Ham, London, E6 2JA.

© 2026 7BlockLabs. All rights reserved.