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.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.