Choosing a signer type
Signer types will define the custody and user experience of a wallet.If you use a non-custodial signer and a custodial signer at the same time, the wallet will be considered custodial.
- You are licensed for custody
- You are building use cases that don’t require custody, such as collectibles or utility token management
- You want to handle asset management and transactions on behalf of users
- You need a simple, server-side solution without user interaction for blockchain operations
- You are building use cases that require license (e.g. holding stablecoins) and you don’t have it
- Self custody is important to your users
Signer types
Email, phone number, and social login
Phone number and social login signers are available under private access. Contact
us if you need access.
How does it work?
How does it work?
This signer type uses a master secret generated inside a Trusted Execution Environment (TEE) that runs open-source, verifiable code.
This master secret is never stored or exposed outside the TEE and is protected by user-controlled credentials, such as email authentication.
Once created, the master secret is split into two parts using Shamir Secret Sharing: a device share (stored securely on the users device)
and an auth share (stored on Crossmint’s backend). Both shares are required to reconstruct the master secret, and this only happens locally
within a secure enclave on the user’s device.When a user wants to sign a transaction, the host application sends a request to a secure iframe. The device share and the auth share are
combined within this local secure environment to reconstruct the master secret, derive the necessary keypair,
and produce the signature. At no point do the host application or Crossmint have access to the full master secret or the private key;
the signing process and key management are isolated from both parties, ensuring that sensitive cryptographic material is never exposed.
Is this signer type non-custodial?
Is this signer type non-custodial?
Yes, this system is considered non-custodial because neither the host application nor Crossmint can unilaterally access or control the user’s keys.
The host application never sees the key shares or the master secret, and Crossmint only holds one share, which is useless on its own.
The code running in the TEE is publicly verifiable and tamper-proof, and all sensitive operations occur within secure, user-controlled environments.
This guarantees that only the user, through their device and authentication, can authorize transactions, maintaining true user custody over their cryptographic keys.
Configuration
- React
- Node.js
- React Native
Passkey
Passkeys enable users to access their wallets and perform transactions using their device biometrics or password manager. They are built on top of the WebAuthn standard and are supported by most modern browsers.Configuration
- React
- Node.js
- React Native
External wallet
External wallets (or keypairs) can be used as signers to access and transact with a wallet. This includes also walletsConfiguration
- React
- Node.js
- React Native
API key
A project’s API key can also be used as a signer for your wallet. This allows transacting with a wallet without needing the user to sign at any point.Configuration
- React
- Node.js
- React Native

