Wallet Service improvements

Wallet Service improvements

We've improved our wallet service for in-app and ecosystem wallets with new quality of life features. Below are the highlights and detailed changes.


✨ Highlights

  • Account deletion flag – allow end‑users to erase their wallet account entirely when unlinking the final auth profile.
  • Improved partner attribution – new user records created via an ecosystem partner are now tagged, and filtering is supported via the API.
  • Phone‑login sandboxing – deterministic phone/O​TP pair for local development and App Store / Play Store review flows.

1 · Full Account Deletion When Unlinking the Last Profile

Apple and other platforms mandates an way to delete user accounts.
You can now fulfill this requirement by setting allowAccountDeletion: true when unlinking the final profile tied to a wallet.

React Hook (useUnlinkProfile)

import { useUnlinkProfile } from "thirdweb/react";

const { mutate: unlinkProfile } = useUnlinkProfile();

const handleUnlink = () => {
  unlinkProfile({
    client,
    profileToUnlink: connectedProfiles[0],
    allowAccountDeletion: true, // Deletes the account if it's the last profile
  });
};

Direct Function (TypeScript SDK)

import { unlinkProfile } from "thirdweb/wallets/in-app";

await unlinkProfile({
  client,
  profileToUnlink: profiles[0],
  allowAccountDeletion: true, // Deletes the account if it's the last profile
});

2 · Better Ecosystem‑Partner Attribution

  • Automatic tagging – Any new wallet created through an ecosystem partner is now associated with that partner ID. (Existing users remain unchanged.)
  • Filtering – Query only the users for a given partner by providing both headers:
x-ecosystem-id:          <your‑ecosystem‑id>
x-ecosystem-partner-id:  <partner‑id>

GET /v1/users now returns only the wallets originated by that partner when both headers are present.


3 · Easier Local Testing for Phone‑Number Login

For staging or App Store submission, you may use the dedicated test credentials:

Field Value
Phone +11111111111
OTP 0000

These bypass SMS delivery so you can validate the flow end‑to‑end without external dependencies.


Feedback

As always we appreciate your feedback – drop us a line or open an issue on GitHub.


© 2025 Thirdweb