Skip to main content
Sponsorship configuration differs by client. Embedded wallets give Rhinestone a short-lived application token and a separate, single-use sponsorship grant. Custom signer integrations prepare sponsored transactions on a backend that holds the project API key.
Keep private signing keys and API keys on your backend. Never put either credential in browser or mobile code.

Configure sponsorship

Embedded wallets backend

Embedded wallets use two endpoints on your backend:Use the values from the JWT key registered on the Dashboard’s JWT keys screen:@rhinestone/wallet/server reads these values from RHINESTONE_JWT_PRIVATE_KEY, RHINESTONE_INTEGRATOR_ID, RHINESTONE_PROJECT_ID, RHINESTONE_APP_ID, and RHINESTONE_KEY_ID. Its extensionToken() helper normalizes both embedded-wallet request shapes to the canonical intent input before signing.
Mount each operation at the URL used by your client. Authenticate your normal application session before minting:
These are application-owned handlers for the embedded-wallet SDK, not Caucasus quote bodies. requireApplicationSession represents your application’s session validation.
This minimal route shape is not a production policy. Configure issuance checks, bind the requested account to the authenticated session, and understand the current enforcement boundary described in Policies and security.

Embedded wallets client

Use these endpoint URLs in the shared client initialization:
The embedded wallet sends cookies to these endpoint URLs. Your backend still decides how to authenticate the application session and whether to issue a sponsorship grant.

Managed Solana setup

The same endpoints sponsor wallet.deploy({ chain }) for managed Solana setup, including transaction fees and wallet rent. Setup is app-paid and has no user-paid fallback. Each creation or enrollment can request a separate grant; retries can request more.Your backend must accept the current canonical Solana input and validate it through shouldSponsor.intent. EVM account, calls, or appFees filters reject Solana-only setup and spends even when their callbacks would return true. See Solana issuance policy and Set up a Solana wallet. Follow Migration when upgrading the client and sponsorship backend.

Application authentication is not sponsorship

The access token identifies the app and project. The embedded wallet needs it for both sponsored and user-paid intents. Only an extension token grants permission to spend sponsorship, and each jti can be redeemed once.Validate the full request before minting and use compatible client and server helpers for intent-bound grants. A digest in a token is not sufficient unless it matches the contract enforced downstream. See Policies and security before exposing token endpoints to an untrusted client.
Next, choose which fees to sponsor and configure policies and budgets.