What it is
Para is an embedded wallet and authentication provider, launched as Capsule and renamed to Para in 2025. Its npm packages still carry the old name in places. Users sign up with email, phone, social login, or a passkey, and get a wallet in the process. There are no seed phrases and no browser extension, so the wallet is part of signing up for your app rather than a separate step your users have to understand first.Key model
MPC. Private keys are split between the user’s device and Para’s infrastructure, and neither Para nor your application ever holds a complete key. That keeps the wallet self-custodial, which is what Passage flows assume: the user signs their own transactions and pays their own gas, and nothing in Passage can move funds on their behalf.What the integration looks like
The Para-specific work is one hook. Para exposes a viem account throughuseParaViemAccount(), and you write an adapter, called useParaEvmWallet in Para’s walkthrough, that presents it as Passage’s EvmWallet: address, signMessage, writeContract, broadcastRawTx, and awaitTx.
Everything after that is the same code any Passage partner writes. Offers, eligibility and requirements, KYC, wallet screening, disclosures, document signing, and the checkout flows for Ondo and Superstate all run unchanged, because none of them know which wallet stack is underneath.
The adapter is also asset-agnostic. It is written against the wallet interface rather than against any particular provider’s flow, so assets added to Passage later become available to your users without further Para-side work.
Because Para signs locally, there is no chain for the user to switch. The adapter takes the target chain as a parameter on each call, which is the same contract any
EvmWallet implementation satisfies.Supported networks
EVM only for now: Ethereum and Base, on both mainnet and Sepolia. Para supports more chains than this, but the Passage integration is limited to the four the SDK’sEthereumChain type covers.
Which of those a given order can actually settle on comes off the offer rather than from this list. OfferDetail.swapContracts names the chains an offer supports, and swapSpender returns null for a chain it does not. See Wallets and chains for what is live today.
What you still need from Passage
Para handles the wallet. Passage credentials are separate, and you register for your own: aclient_id, a registered redirect_uri, and a client_secret. OAuth runs through your backend so the secret never reaches the browser.
See Set up OAuth authentication for the flow, and contact us if you need credentials.
FAQ
Does Para hold my users' keys?
Does Para hold my users' keys?
No, and neither does your app. Keys are split with MPC between the user’s device and Para’s infrastructure, so a complete key exists in neither place. Passage never has access to a key at all.
Do my users need a seed phrase or a browser extension?
Do my users need a seed phrase or a browser extension?
No. A Para wallet is created from the sign-up method your user already chose, whether that is email, phone, social login, or a passkey.
How much Para-specific code is there?
How much Para-specific code is there?
One adapter hook, which Para’s walkthrough gives in full. It maps Para’s viem account onto the five members of
EvmWallet. Nothing else in a Passage integration is provider-specific.Do my users still have to pass KYC and eligibility?
Do my users still have to pass KYC and eligibility?
Yes. The wallet provider does not change what an offer requires. Passage reads the requirements for the offer your user is interested in and walks them through exactly those steps. See Requirements.
Does wallet ownership still have to be proved?
Does wallet ownership still have to be proved?
Yes, and the SDK runs it. The user signs a message to prove they control the address, and for Superstate the issuer also allowlists that address on-chain before it can settle. A Para wallet satisfies both through the same
signMessage the adapter already supplies.Who pays gas?
Who pays gas?
The user, from their own wallet, as on any Passage integration. A Para wallet needs the native token of whichever chain the order settles on. See Wallets and chains.
Can I support Para alongside external wallets?
Can I support Para alongside external wallets?
Yes.
CheckoutWalletSelection takes an embedded wallet and external ones together, so Para can be the default while a user who prefers their own wallet connects it instead. See Wallets.Build it
Para's Passage walkthrough
The adapter in full, step by step, from Para’s own docs.
Wallets
The
EvmWallet seam the adapter satisfies, and how wallet errors are classified.Set up OAuth authentication
Register your credentials and run the flow through your backend.
Building the Checkout flow
Hand the adapted wallet to a container that renders any offer type.