Mint Identity
Identity
Mint Identity
Create a new ZKScore identity with a unique ZKS ID
POST
Mint Identity
Overview
Mint a new identity NFT (SBT) with a unique ZKS ID. This creates a non-transferable identity token that can be activated to become soulbound. Once minted, the identity can be used across the ZKScore ecosystem.Identity names must be unique across the platform. Use the Check Availability endpoint to verify name availability before minting.
Request Body
The desired ZKS ID name (without .zks suffix). Must be 3-32 characters, lowercase letters, numbers, and hyphens only. Cannot start or end with a hyphen.
The Ethereum wallet address that will own this identity. Must be a valid address format.
Optional metadata for the identity
Response
Indicates if the minting was successful
Examples
Response Example
Error Responses
Name Validation Rules
Valid Names
✅ Accepted formats:alice- Simple namedefi-master- With hyphenuser123- With numbersmy-identity-2024- Multiple hyphens and numbers
Invalid Names
❌ Rejected formats:al- Too short (minimum 3 characters)-alice- Starts with hyphenalice-- Ends with hyphenAlice- Contains uppercasealice.eth- Contains periodalice@zks- Contains special charactersthis-name-is-way-too-long-to-be-valid- Too long (maximum 32 characters)
Use Cases
1. User Onboarding
Create an identity during user registration:2. Batch Identity Creation
Create multiple identities for a team or organization:3. Identity with Custom Metadata
Create an identity with rich metadata:Best Practices
1. Check Availability First
Always check name availability before attempting to mint:2. Handle Errors Gracefully
Provide helpful feedback when minting fails:3. Store Transaction Hash
Save the transaction hash for verification:4. Activate After Minting
Remember to activate the identity to make it soulbound:Next Steps
After minting an identity:- Activate Identity - Make the identity soulbound
- Get Identity - Retrieve identity information
- Get Score - Check the user’s ZKScore
Related Endpoints
- Activate Identity - Activate a minted identity
- Check Availability - Check if a name is available
- Get Identity - Retrieve identity information
Troubleshooting
”Name already taken”
Cause: The requested name is already registered by another user. Solution:- Use the suggestions provided in the error response
- Try a different name with numbers or hyphens
- Check availability before minting
”Invalid name format”
Cause: The name doesn’t meet validation requirements. Solution:- Ensure name is 3-32 characters
- Use only lowercase letters, numbers, and hyphens
- Don’t start or end with a hyphen
”Transaction failed”
Cause: Blockchain transaction failed or was reverted. Solution:- Check wallet has sufficient gas
- Verify wallet address is correct
- Try again after a few minutes
- Contact support if issue persists
Rate Limits
Identity minting is subject to rate limits:- Free tier: 10 mints per hour
- Starter tier: 100 mints per hour
- Professional tier: 1,000 mints per hour
- Enterprise tier: Custom limits
429 Too Many Requests error.