Vendor docs describe login methods and pricing. They rarely show the screens a person actually clicks through. I wanted that, so I built KYC Flows: a free site with side-by-side screenshots of Privy, Dynamic, thirdweb, MetaMask Embedded, Crossmint, and one KYC vendor, Didit.
I re-shoot the flows every week from test accounts. No real IDs. As of the November 9, 2026 update, the four wallet logins were recaptured and had not changed, so those pictures still date to November 2. Didit's intro and a new consent screen are from November 9.
I have not timed any of these paths. The compare pages still say "Not measured yet" for time to a first wallet.
What the first screen asks for
Each lab uses a default or sandbox client, and the methods you turn on will change the first screen. Here is what the captures show.
Privy. This lab offers email only. The address is submitted from that first screen.
Dynamic. The sandbox shows an email field, then MetaMask, Coinbase, and WalletConnect.
MetaMask Embedded. The default modal offers email or phone, MetaMask, and other wallets.
thirdweb. This client asks for an email address.
Crossmint. The sign-in sheet offers Google, or an email with Submit on the same row, plus a "Secured by Crossmint" line.
Those first screens already disagree. Privy and thirdweb, in these clients, start with email. Dynamic and MetaMask Embedded put external wallets on the first screen. Crossmint puts Google next to the email field.
How far each walk got
I only finished two of the wallet paths.
On Privy, the lab path was email, a one-time code, a screen that says it is creating the wallet, then an all-set screen that says the account is secured. MFA did not appear. That is four captured screens of the five the page lists. The extra security check is still pending.
On Dynamic, the path was email, a code, then a signed-in widget. A separate wallet-creation screen did not appear, and the extra-details and extra-check screens also did not show up. The site counts that as email, code, then a signed-in widget. Three screens captured of five listed.
thirdweb stops on the code screen after the email step. MetaMask Embedded stops on a screen that says "Verify your Email account to continue." I did not enter those codes, so no wallet was reached. Crossmint is a login sheet, the email filled in, then a six-digit code screen. That code was not entered either, so no wallet was created.
If a vendor page lists four or five sign-up steps, some of those boxes are still empty, or only described in the docs. The honest count is the screens I actually captured, and whether I reached a wallet.
Didit added a consent step
Didit is the only KYC vendor on the site. It does not create a wallet. I added it because a wallet flow often grows a verification step, and because Didit publishes prices in the open.
The November 9 re-shoot caught a new intro layout: scan an ID, take a selfie, and continue on another device. After that intro sits a new required screen titled "Before we take your selfie."
The screen says face geometry comes from the selfie and the ID photo, plus a short liveness video. It says KYC Flows and Didit have that data, it is not sold, and it is deleted when no longer needed, never later than 12 months after the last verification. The checkbox is required before "Agree and continue."
The document screens after that are still the November 2 captures. The face steps are not on the site, because they need a real ID, and I do not submit one. Nine of twelve listed screens are captured. Didit's intro says the check takes about a minute. That is their claim, not a time I measured.
Crossmint's public wallet price, as of November 9
The same changelog notes that Crossmint's login screens did not change. Its public wallet price, recorded on November 9 from Crossmint's pricing page, is free for 5,000 monthly active wallets, then $0.01 per wallet. Custom pricing starts at $0.01. The site lists onramps and checkout as separate, per-transaction products, not part of the login price.
For contrast, thirdweb's published shape is 1,000 wallet MAUs free, then from $0.015, plus a platform plan starting at $99. Those are snapshots of public pages, not quotes.
What I would not read into this
The modal an app shows is a configuration. Privy's lab is email only. Dynamic's sandbox shows wallets on the first screen. MetaMask Embedded's default modal is not the same as a custom button that skips the picker. Times are not measured. Some walks stop on the code screen.
The screens, the public prices, and the weekly changelog are on kycflows.com. I built this. If a screen or a cited price changes, I recapture it the following week.









