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 Type | Environment | Use Case |
|---|---|---|
| Email / Passkey | Browser, React Native (WebView) | User-facing apps |
| API Key | Server (Node.js) | Automated / custodial flows |
| External Wallet | Any | Delegated signing |
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
window is not defined
window is not defined
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.
Transaction expired
Transaction expired
Cause: Too much time between creating operation and signing.Solution: Sign and submit within 60 seconds of creating the operation.
Invalid signature
Invalid signature
Cause: Wrong wallet signing the transaction.Solution: Ensure the Crossmint wallet address matches the
walletAddress passed to the operation.