SoroPass

Fees and sponsorship

What a passkey account costs on-chain, who pays, and how to sponsor onboarding so users hold no XLM. Real mainnet numbers for account creation and add-device.

A passkey account is a Soroban smart account (a C... contract). Authorization and payment are separate: the passkey proves who may act, and a classic account (yours, a relayer, or the user's) pays the network fee and submits the transaction. This page shows what each passkey operation costs, who can pay, and how to run a gasless onboarding.

No base reserve

A contract account holds no base reserve, unlike a classic G account that locks ~1 XLM. Creating a passkey account costs only the network fee of the deploy, so sponsoring accounts does not lock up XLM.

What costs a fee

Only operations that submit a transaction cost a fee. The figures below are measured on Stellar mainnet.

OperationCostNotes
Create an account (factory.deploy)~0.05 XLMOne-time, per account. Deploys the smart account.
Add a device / signer (add_signer)~0.03 XLMEnrolls a second passkey for recovery.
Remove a signer (remove_signer)~0.005 XLMRevokes a device.
Submit a passkey-signed transaction~0.005 XLMPayments, contract calls, any authorized action.

These are network fees, paid by whichever account submits the transaction. They are separate from the account's own balance: a passkey account holds and spends its own XLM and tokens; the fees above are only the cost of submitting.

What is free

These run in the browser or read-only against an RPC, so they cost nothing on-chain:

  • Signing a transaction, an auth entry, or a message (the fee appears only when you submit a transaction).
  • connect (silent reconnect from a stored credential).
  • recover (resolve a credential's accounts through the indexer).
  • Deriving an account address offline.

Who pays

The fee source is a pluggable submission adapter, so you choose the payer once and every operation follows it:

  • directSubmission: an account you control pays. Good for development.
  • launchtubeSubmission or openzeppelinRelayerSubmission: a relayer pays, so the user needs no XLM.
  • The user's own G account pays.

Set the adapter once and account creation, add-device, and every signed transaction route through it. See Adapters and Gasless onboarding.

How to sponsor onboarding

Sponsor the two operations that remove the onboarding barrier: account creation and adding a backup device. Your new user then holds a working, recoverable passkey account without owning any XLM, and your funded account paid for it.

Per user that is about 0.05 XLM to create the account plus about 0.03 XLM to enroll a backup device, so about 0.08 XLM. Sponsoring 10,000 users is on the order of 800 XLM (about 500 XLM for creation and 300 XLM for one add-device each). Budget higher to allow for network fee changes.

Everything after onboarding is equally your choice. Because payment is decoupled, you sponsor your users' ongoing transactions through your own account or a relayer, or have users pay their own fees once they hold XLM. The deployed factories are open infrastructure: they set no fee policy and fund nothing themselves.

Proof on mainnet

The signing path runs on Stellar mainnet:

Never ship a fee-source secret in a browser page. Sponsor from a server-held account or a relayer.

On this page