Release v3.1.0: sponsored user flows, batched helpers, decoded errors, lighter install - #38
Merged
Merged
Conversation
The server library pulled about 5 MB of certificate parsers into the app for one encoding helper. @scure/base is already installed by viem.
A hosted RPC can answer from a node a block behind, which returned stale registry state and a used nonce.
The app must install the native module itself for Expo to link it, and a backend using only kokio-sdk/admin never loads it.
ArpitxGit
previously approved these changes
Sep 19, 2026
ArpitxGit
approved these changes
Sep 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds helpers that batch common user actions into one passkey prompt, makes failed calls report the contract's error by name, fixes bugs found while testing the SDK the way an app would use it, and makes the install much smaller. Adds test tiers that run the full user journey through the published package, on a local Base Sepolia fork and on the live network with Pimlico.
Upgrade notes
react-native-passkeythemselves:npm install kokio-sdk react-native-passkey. It is an optional peer dependency (^3.6.1). Expo only links native modules the app lists directly, so apps needed it anyway.kokio-sdk/adminneed nothing extra. That entry point never loads the passkey module.deployESIMWalletWithUserOpis deprecated in favour ofdeployAndBindESIMWallet. It still works.New
deviceWallet.deployAndBindESIMWallet(salt, { grantAccessToFunds? })deploys an eSIM wallet, binds it to the device wallet and optionally grants it access to funds, in one sponsored user operation. Returns{ userOpHash, eSIMWalletAddress }.eSIMWallet.buyDataBundleWithTransfer(details, asset, maxAmountIn, ref)sends any missing tokens and buys the bundle in one user operation, so it works without pull access.eSIMWalletFactory.getCounterFactualAddress(deviceWallet, salt)predicts an eSIM wallet address before it is deployed.getSmartWalletClient(account, { bundlerUrl })accepts an optional bundler URL.Changed
getSmartWalletno longer needs the wallet client to carry anaccount.sponsorshipPolicyId, the key Pimlico reads. The policy is now optional.ContractRevertErrorwith the contract error name, instead of a raw bundler error.kokio-sdkandkokio-sdk/admin.Fixed
@peculiar/asn1-*without declaring them. The unused code that did so is removed.Performance
Dependencies
@simplewebauthn/server@scure/basereact-native-passkey@peculiar/asn1-*Runtime dependencies are now
viem,@noble/curvesand@scure/base. Dev only:@pimlico/alto,@pimlico/mock-paymasterandproolfor the local bundler and paymaster;taris overridden to 7.5.22 for a security advisory.Docs
accountneeded, optional policy, write results andContractRevertError, the batched helpers.PROTOCOL_ADMIN.md: corrected ProtocolAdmin address, and clarified that the executor sends an operation's ETH.registry.bindESIMWallet: notes that it binds the registry side only.Tests
npm testnpm run test:consumer:forknpm run test:integration:forknpm run test:consumer:liveBASE_SEPOLIA_RPC_URL,PIMLICO_API_SECRET,ESIM_WALLET_ADMIN_PK, and USDCt on the admin accountWhat the journeys cover:
USDCandUSDCtOther test changes:
kokio-sdk-testso it stands apart from other activity on Base Sepolia.