Configuration
Generate a Signer Secret
You must generate a signer secret to ensure that no one — including Crossmint — can access or control your wallet. This secret:The Crossmint SDK automatically derives signing keys from this secret, scoped to your project ID, environment, and chain type (EVM, Solana, or Stellar). A single secret produces the same derived address across all EVM chains within a project — you do not get a different key per EVM network.
- Must be either 64 hex characters (case-insensitive) or use the prefixed format
xmsk1_<64-hex-chars>. - Remains on your server and is never transmitted to Crossmint. The SDK derives a private/public keypair from it locally and uses public-key infrastructure (PKI) for authorization — only the public key is ever shared.
CROSSMINT_SIGNER_SECRET environment variable on your server:Signer Secret Generator
Use this tool to generate a master signer secret for your server-side or agent wallet environment. The secret is generated entirely in your browser — nothing is transmitted to any server.Generate Your Own Key Programmatically
You can also generate a signer secret programmatically:Under the Hood
A server signer is, at its core, a secret that gets deterministically mapped into a private key compatible with the underlying blockchain network. You provide a master secret, and the Crossmint SDK derives signing keys from it grouped by chain type — so a single secret works across all supported chains within a project.How Key Derivation Works
A 32-byte (256-bit) random value serves as your master secret. The SDK derives private keys from this master secret using HKDF-SHA256, scoped to your project ID, environment, and chain type:chainType is one of evm, solana, or stellar, and algorithm is secp256k1 (EVM) or ed25519 (Solana/Stellar).
The projectId and environment are extracted automatically from your server API key by the SDK. Because derivation uses chain type rather than the specific network name, the same master secret produces the same signing key and address across all EVM chains (e.g., Base, Ethereum, Polygon) within a given project and environment. Solana and Stellar each derive their own distinct key.
Wallets created before the chain-type normalization may have been derived using the specific chain name (e.g.,
base-sepolia) instead of evm. The SDK automatically applies a legacy fallback for these wallets so existing addresses continue to resolve correctly.How Are Server Signer Locators Derived
When referencing a server signer in API calls (for example, when submitting approvals or registering it as an operational signer), use the locator formatserver:<address>:
<address> is the public address derived from your signer secret for the target chain. The SDK computes this automatically when you use type: "server" — you only need the locator format when working with the REST API directly.
