Skip to main content
This guide shows how to sign and submit RebelFi transactions using Crossmint’s Wallets SDK.
For Crossmint setup, API keys, and wallet creation, see the Crossmint documentation.

Environment Requirements

Crossmint’s SDK has different signer types with different environment requirements:
Signer TypeEnvironmentUse Case
Email / PasskeyBrowser, React Native (WebView)User-facing apps
API KeyServer (Node.js)Automated / custodial flows
External WalletAnyDelegated signing
Email and Passkey signers require a browser environment. They use an iframe for TEE (Trusted Execution Environment) authentication. This won’t work in Node.js tests or server-side code.
Important: Never expose your RebelFi API key in client-side code. For React/browser integrations, proxy API calls through your backend server.

Client-Side Flow (React / React Native)

For user-facing applications where users sign their own transactions:

React Native / Expo

Crossmint uses WebView to provide browser APIs in React Native. The SDK works the same way, but requires WebView-based components. See Crossmint’s React Native SDK for setup.

Server-Side Flow (API Key Signer)

For automated or custodial flows where your server controls signing:
API Key signers are custodial — Crossmint signs transactions automatically without user interaction. Use this for treasury management or automated operations.

Complete Example: Supply + Unwind

Operation and transaction statuses are returned in UPPERCASE (e.g., 'CONFIRMED', 'FAILED').

Troubleshooting

Cause: Using email/passkey signer in Node.js or server environment.Solution: Use API Key signer for server-side, or run in browser/WebView environment.
Cause: Too much time between creating operation and signing.Solution: Sign and submit within 60 seconds of creating the operation.
Cause: Wrong wallet signing the transaction.Solution: Ensure the Crossmint wallet address matches the walletAddress passed to the operation.

Resources