Skip to main content
Your app owns account login and wallet connection. Gacha, Marketplace and Redeem support a user’s EOA without a Renaiss account or Safe. Renaiss checks the builder’s permission and the wallet’s authority for each action.

Credentials by operation

The builder key uses x-builder-api-key. A wallet access token uses Authorization: Bearer <accessToken>. When both are required, send both headers; they serve different purposes. Wallet access tokens are issued after wallet verification. Their scopes determine which operations they authorize. The currently supported scopes are redeem:read and redeem:write, used for private Redeem operations.

Keep the builder key on your backend

For browser integrations, send SDK requests through a backend route such as /api/renaiss. The backend forwards to your assigned API and supplies its builder key. Authenticate requests with your own user session, authorize the requested operation and apply rate limits. Allow only the required upstream routes and methods. Set the upstream key yourself rather than forwarding a client-supplied key. Forward the wallet access token when required and preserve streaming responses for gacha pulls. Do not put builder keys in NEXT_PUBLIC_* variables or return them to the browser. Exclude bearer tokens, refresh tokens, signatures and shipping details from routine application logs.

Verify a wallet for shipping

Request verification when the user opens private shipping data or starts Redeem. Wallet connection alone does not create this session. The user signs a message allowing shipping access; checkout later requires a separate action signature.
Reuse that client for private requests. It holds the scoped credentials in memory and refreshes them within the session lifetime. On your app’s logout, wallet change or chain change, call disconnectRedemptionWallet() and clear private UI state.

Frontend origin and API issuer

Register the exact frontend scheme, host and port for your builder. An origin has no path or trailing slash. Local HTTP loopback origins must be registered explicitly; http://localhost:3311 and http://127.0.0.1:3311 are separate origins. Configure the issuer from your deployment details. With a relative proxy it is required; with an absolute API URL the SDK defaults to that origin plus /v2/auth/wallet. An alias may still have a different canonical issuer. Never take the expected issuer from an unvalidated signing challenge.

Session timing

An expired or cancelled signature prompt leaves the wallet unverified. Retry after the user’s next verification action. The signed message explains the permission and session duration; it does not authorize a transaction. For raw HTTP integration, use /v2/auth/wallet/nonce, /verify, /refresh and /revoke. Sign the returned message byte for byte. The SDK validates the wallet, chain, origin, issuer, audience, scopes and expiry before prompting. The API reference defines the request bodies and challenge context.

Identity providers

You can supply an EOA signer from your own Privy or other embedded-wallet integration. Its login token is not a Renaiss wallet access token. Partner identity-token/JWKS authentication is not supported by this API; obtain a wallet access token through wallet verification. Sign in with Renaiss is optional OIDC account login. It is not required for these wallet flows and does not replace shipping verification.