Skip to main content
POST
Activate Identity

Overview

Activate a minted identity to make it soulbound (non-transferable). Once activated, the identity becomes permanently bound to the owner’s wallet and can be used as a parameter across all ZKScore APIs. Activation is irreversible.
Activation is permanent! Once an identity is activated, it cannot be transferred or deactivated. Make sure you’re activating the correct identity.

Request Body

number
required
The NFT token ID of the identity to activate (obtained from minting)
string
required
Cryptographic signature from the identity owner proving ownership
string
required
The wallet address of the identity owner (must match the minted identity)

Response

boolean
Indicates if the activation was successful
object

Examples

Response Example

Error Responses

Signature Generation

Using ethers.js

Using web3.js

Using MetaMask

Use Cases

1. Complete Onboarding Flow

Mint and activate an identity in sequence:

2. Activation with User Confirmation

Request user confirmation before activation:

3. Batch Activation

Activate multiple identities:

Best Practices

1. Verify Before Activation

Check identity details before activating:

2. Handle Errors Gracefully

Provide clear error messages:

3. Store Activation Status

Track activation in your database:

4. Verify Signature Locally

Verify signature before sending to API:

What Happens After Activation

Once activated, your identity:
  1. Becomes Soulbound: Cannot be transferred to another wallet
  2. Can Be Used as Parameter: Use alice.zks instead of wallet address in all APIs
  3. Enables Features: Unlocks achievements, attestations, and trust scoring
  4. Permanent: Cannot be deactivated or changed

Next Steps

After activating an identity:
  1. Get Score - Check your ZKScore
  2. Get Achievements - View available achievements
  3. Create Attestation - Start building trust

Troubleshooting

”Invalid signature”

Cause: Signature doesn’t match the expected format or signer. Solution:
  • Ensure you’re signing with the correct private key
  • Use the exact message format: Activate identity {tokenId}
  • Verify the wallet address matches the identity owner

”Already activated”

Cause: Identity has already been activated. Solution:
  • Check identity status before attempting activation
  • This is not an error if the identity is already active

”Not identity owner”

Cause: The wallet address doesn’t match the identity owner. Solution:
  • Verify you’re using the correct wallet
  • Check the identity owner address
  • Only the owner can activate their identity

”Transaction failed”

Cause: Blockchain transaction failed. Solution:
  • Ensure wallet has sufficient gas
  • Wait a few minutes and try again
  • Check blockchain network status
  • Contact support if issue persists

Security Considerations

Private Key Safety

Never expose your private key:

Signature Verification

Always verify signatures match expected addresses:

Rate Limiting

Respect rate limits to avoid being blocked: