Example Code
Init Wallet
/**
 * Initialize the SDK with configuration options
 */
export const initializeSDK = async () => {
  // Set up secure storage based on platform
  const secureStorageProvider = Platform.select({
    ios: 'keychain',
    android: 'keystore',
    storage: 'secureStore',
  });
  // Initialize the SDK with configuration
  const wallet = await IDWalletSDK.initialize({
    storageProvider: secureStorageProvider,
    cryptoSuites: ['ES256'],
    didMethods: ['did:web'],
    revocationOptions: {
      statusListSupport: true,
      checkFrequency: 'onUse',
    },
    loggingLevel: process.env.NODE_ENV === 'development' ? 'debug' : 'error',
  });
  return wallet;
};
Issue Credential
export const issueCredential = async (credentialOfferData: string) => {
  const oid4vciSession = await wallet.startIssue(credentialOfferData);
  const status = oid4vciSession.getStatus();
  /**
   * {
   *   status: 'pre-authorized',
   *   tx_code: { input_mode, length, description }
   * }
   *
   */
  const credential = await oid4vciSession.issue({
    credential_configuration_id,
    tx_code,
    proof,
  });
  return credential;
};
Present Credential
export const presentCredential = async (credentialRequestData: string) => {
  const oid4vpSession = await wallet.startPresent(credentialRequestData);
  const matchedCredentials = oid4vpSession.getMatchedCredentials(credentials);
  // select credentials from matchedCredentials
  const selectedCredential = matchedCredentials[0];
  const selectedPresentations = wallet.selectCredentials(matchedCredential, {
    sd: {
      /* selective disclosure on claims */
    },
    kb: wallet.kb(privateKey),
  });
  const result = await oid4vpSession.present({
    selectedPresentations,
  });
  return result;
};