Skip to main content

What’s Happening

Core API v1 endpoints will be shut down on July 31, 2026. After that date, all v1 requests will be rejected and v1 wallets that have not been migrated will be inaccessible. There is no automatic routing — v1 and v2 are distinct paths and you must update your integration explicitly. We recommend migrating before the deadline. The v2 API is more secure, removes the need to manage encryption_context and recovery_key, and ties wallet access directly to your users’ JWT identities.

What Changed

Migration Steps

1

Update wallet creation

Replace encryption_context with auth_jwt — the user’s JWT from your identity provider.v1:
cURL
v2:
cURL
v2 wallet creation no longer returns a recovery_key. You only need to store wallet_id and access_key.
2

Update signing operations

Replace encryption_context with op_jwt. The access_key and wallet_id remain the same.v1:
cURL
v2:
cURL
The same pattern applies to sign_message and sign_transaction — swap encryption_context for op_jwt and update the path from /v1/ to /v2/.
3

Issue op_jwt tokens

Add a mechanism to issue short-lived op_jwt tokens (max 5 minutes) for your users from your identity provider. The JWT must be issued by the same IdP configured for your Magic application.
Generate op_jwt as close to the signing call as possible to minimize its validity window.
4

Update database schema

Stop storing recovery_key for new v2 wallets. You only need wallet_id and access_key.Once a wallet is migrated, its recovery_key is permanently invalidated — recovery is handled by your identity provider going forward. You can safely delete stored recovery_key values from your database after migration.