Resources
Migration

Migration Guide

Guides for upgrading between Veridex SDK versions.

Migrating to 1.0.0-beta.1

From 0.x

The 1.0.0 beta introduces a new API structure for better TypeScript support and modularity.

SDK Initialization

// ❌ Old (0.x)
import Veridex from '@veridex/sdk';
const sdk = new Veridex({
  chain: 'base',
  testnet: true,
  relayerUrl: 'https://...',
});
 
// ✅ New (1.0.0-beta.1)
import { createSDK } from '@veridex/sdk';
const sdk = createSDK('base', {
  network: 'testnet',
  relayerUrl: 'https://...',
});

Passkey Methods

// ❌ Old
await sdk.register(email, name);
await sdk.login();
await sdk.getStoredCredential();
 
// ✅ New
await sdk.passkey.register(email, name);
await sdk.passkey.authenticate();
sdk.passkey.getAllStoredCredentials();

Session Keys

// ❌ Old
await sdk.createSession({ duration: 3600 });
await sdk.getActiveSession();
await sdk.revokeSession();
 
// ✅ New
await sdk.sessions.create({ duration: 3600 });
sdk.sessions.getActive();
await sdk.sessions.revoke();

Transfers

// ❌ Old
await sdk.transfer({
  token: '0x...',
  to: '0x...',
  amount: 1000000n,
  gasless: true,
});
 
// ✅ New
await sdk.transferViaRelayer({
  token: '0x...',
  recipient: '0x...',
  amount: 1000000n,
});
 
// Or prepare + execute with own signer:
const prepared = await sdk.prepareTransfer({ token: '0x...', recipient: '0x...', amount: 1000000n });
await sdk.executeTransfer(prepared, signer);

Cross-Chain

// ❌ Old
await sdk.bridge({
  token: '0x...',
  amount: 1000000n,
  toChain: 'optimism',
  toAddress: '0x...',
});
 
// ✅ New
await sdk.crossChainTransfer({
  token: '0x...',
  amount: 1000000n,
  targetChain: 'optimism',
  recipient: '0x...',
  path: 'fast', // 'fast' (CCQ) or 'standard' (VAA)
});

Getting Addresses

// ❌ Old
const address = sdk.address;
const evmAddress = sdk.getEVMAddress();
const solanaAddress = sdk.getSolanaAddress();
 
// ✅ New
const address = sdk.getVaultAddress();
const evmAddress = sdk.getVaultAddress('base');
const solanaAddress = sdk.getVaultAddress('solana');
// Or use chain-specific getters
const solana = sdk.getSolanaAddress();
const aptos = sdk.getAptosAddress();

Balances

// ❌ Old
const balance = await sdk.getBalance('0x...'); // Single token
const allBalances = await sdk.getAllBalances();
 
// ✅ New
const balance = await sdk.getBalance('0x...'); // Single token
const allBalances = await sdk.getBalances(); // All chains, all tokens
// Returns:
// {
//   base: { ETH: '1.5', USDC: '100.00' },
//   optimism: { ETH: '0.5', USDC: '50.00' },
// }

Type Changes

// ❌ Old
interface TransferParams {
  token: string;
  to: string;
  amount: bigint;
  gasless?: boolean;
}
 
// ✅ New
interface TransferParams {
  token: string;
  recipient: string;
  amount: bigint;
}
 
interface TransferViaRelayerParams {
  token: string;
  recipient: string;
  amount: bigint;
}

Import Changes

// ❌ Old
import Veridex, { TransferParams, SessionConfig } from '@veridex/sdk';
 
// ✅ New
import { 
  createSDK, 
  type TransferParams, 
  type SessionConfig,
  type SDKConfig,
  type VeridexSDK,
} from '@veridex/sdk';

Error Handling

// ❌ Old
try {
  await sdk.transfer(...);
} catch (error) {
  if (error.code === 'INSUFFICIENT_FUNDS') { ... }
}
 
// ✅ New
import { VeridexError, ErrorCodes } from '@veridex/sdk';
 
try {
  await sdk.transferViaRelayer(...);
} catch (error) {
  if (error instanceof VeridexError) {
    if (error.code === ErrorCodes.INSUFFICIENT_BALANCE) { ... }
  }
}

Breaking Changes Summary

OldNew
new Veridex(config)createSDK(chain, config)
sdk.register()sdk.passkey.register()
sdk.login()sdk.passkey.authenticate()
sdk.createSession()sdk.sessions.create()
sdk.transfer({ gasless: true })sdk.transferViaRelayer()
sdk.bridge()sdk.crossChainTransfer()
sdk.addresssdk.getVaultAddress()
testnet: truenetwork: 'testnet'
to parameterrecipient parameter
toChain parametertargetChain parameter

Codemods

We provide a codemod to automatically migrate your codebase:

npx @veridex/codemod@latest migrate-to-1.0

This will update:

  • Import statements
  • SDK initialization
  • Method calls
  • Type imports

Review the changes before committing.

Need Help?