Case study · Delta Exchange India · Mobile onboarding

The funnel already works. Here is where it leaks.

I walked Delta's onboarding end to end on my own device: signup, phone OTP, KYC, DigiLocker, selfie, and the road to first deposit. This is a screen-by-screen improvement of that flow, built inside Delta's existing design system, with the reasoning attached to every change.

The working rule: every existing element preserved, every change inside Delta's own design system, every decision backed by a measurement, a named principle, or a cited source. Anything I could not back is labeled a hypothesis, not a mockup.
The 60-second read

Executive summary

Delta's activation flow is structurally ahead of most of the market I researched: browse-before-KYC, a three-step home stepper, a stated 3-minute promise, and a ₹1 minimum deposit that no competitor I checked matches. The problems are not structural. They are finish problems, concentrated exactly where a new user decides whether to hand over Aadhaar, PAN, and money.

Industry context, attributed rather than asserted: CleverX reports 20 to 40 percent of fintech sign-ups abandoning somewhere inside KYC [18]; Signicat's survey of 7,600 European consumers found 68 percent had abandoned a financial sign-up in the past year [19]. Every leak below is a share of paid acquisition.

1 · Make the OTP screen visible

The five empty code boxes measure 1.01:1 contrast against the background. WCAG 2.2 requires 3:1 for component boundaries. The disabled submit button, meanwhile, carries the most readable text on the screen, so it reads as tappable.

Backed now. Measured failure, fixed with a border color Delta already almost owns.
2 · One verb for one action

The same KYC step is called Verify Now, Get Verified, Complete KYC, and Initiate KYC across four surfaces. I captured two of those labels on the identical screen, six minutes apart, on one device.

Backed now. Nielsen's consistency heuristic; copy-only change.
3 · Tell the truth at ₹0

A brand-new, unverified account shows masked balances and a full-strength Withdraw button. Masking protects nothing at ₹0; it hides the one fact that would push the user toward funding.

Backed, gated. Ship the zero-state branch behind an A/B; funded traders never see it.
4 · Fix the instructions that argue with themselves

The selfie screen says remove spectacles and mask; its own illustration wears both. The KYC screen prints "Aadhar card" beside an icon spelling AADHAAR. Small defects, placed on the exact screens where trust is decided.

Backed now. Error prevention plus a style-guide fix so it cannot regress.
OTP box vs background 1.01:1 (needs 3:1) disabled button label 12.23:1 vs enabled 2.85:1 proposed border #6A7077 3.51:1 all values computed from screenshot pixels, WCAG relative-luminance formula
How this was done

Method

Inventory first. Before proposing anything, I listed every interactive element and every piece of information on each screen. That inventory is a contract: the improved screen must contain every item, doing the same job, in the same number of taps or fewer. Where I believe something should be removed, it appears as a written recommendation for the Delta team, never as a quiet deletion inside a mockup. A live product's decisions were made with context I do not have.

Steelman second. Each screen gets a paragraph on why it was probably built this way, written as if the person who shipped it will read this. They might.

Evidence bar. A change earns its place with one of: a measurement I can reproduce, a WCAG 2.2 success criterion, a named usability heuristic argued against this specific context, an error-prevention argument specific to trading or KYC, or a pattern verified at a named competitor with a link to where I found it. App store reviews did not qualify. Colors and ratios quoted in this document were sampled from the screenshot pixels and computed with the WCAG relative-luminance formula, not eyeballed.

Two buckets, never blurred. Everything lands in either Backed now or Hypothesis, needs data. The second bucket is not filler; it is the list of things I would refuse to build without instrumentation.

What Coinbase is here for. Principles only: state visibility, one primary action per screen, form clarity, candor as a trust device. No Coinbase color, component, or layout appears in any mockup. Every idea taken from its screens is named as a principle and re-expressed in Delta's own tokens, which I sampled from the app: #18191E background, #22242C surfaces, #FE6C02 orange, #00A876 green, #8E9298 muted text.

Scope, strictly. Onboarding only. The trading terminal, order entry, positions, and the options chain are untouched. Two proposals graze screens that funded traders also use; both are explicitly restricted to the new-user or empty-state branch, because onboarding changes that leak into revenue-critical surfaces stop being safe.

Screen 01 · Signup → Phone verification

The OTP screen

Element inventory, current screen9 items · all preserved in the proposal
  1. Title "Phone verification"
  2. Close ✕, top right
  3. Instruction "Enter the 6 digit code sent to 8605142552."
  4. Code boxes ×6, first focused with orange border
  5. Countdown "24s"
  6. Resend Code link, gated by the countdown
  7. Submit Code button, disabled state
  8. Focus state orange border on active box
  9. Status bar (system)
Steelman

Dedicated digit boxes make progress glanceable. Gating resend behind a countdown controls SMS cost and abuse, and Coinbase documents the same gate at roughly 30 seconds [13]. Keeping the submit button on screen but disabled prevents partial submissions. All three are reasonable calls. The failures here are in rendering, not intent.

The problems, with backing
  • Five of six boxes are effectively invisible. Sampled fill #191A1F on background #18191E: a contrast ratio of 1.01:1. WCAG 2.2 SC 1.4.11 requires 3:1 for the visual information that identifies a component [14]. These are active input fields, so the inactive-component exemption does not apply. A first-time user cannot see how many digits the screen wants until they start typing.
  • The disabled button out-shouts the enabled ones. "Submit Code" sits on a brown fill (#592705) with white text at 12.23:1, while Delta's genuinely tappable orange buttons carry white text at 2.85:1. The strongest label on the screen belongs to the control that does nothing. Disabled buttons that look active are a documented usability trap; NN/g's guidance is to make the state unmistakable and say why it is disabled [15]. To be precise: this is not a WCAG violation, because inactive components are exempt from 1.4.11. It is a state-legibility defect.
  • The full phone number is printed in the clear. Delta masks account balances behind an eye toggle two tabs away, so the app already treats over-the-shoulder privacy as a value. The same posture belongs here: ••••••2552.
  • "6 digit code" should be "6-digit code."
  • Autofill is unconfirmed. A static screenshot cannot show whether the field adopts iOS one-time-code AutoFill. If it does not, Apple's mechanism is documented: set the field's textContentType to .oneTimeCode and format the SMS with the domain-bound last line, and the code surfaces in the keyboard bar [16]. This needs one device test before anyone writes code.
The improvement, in Delta's system

Principle drawn from Coinbase's code screen: a form's state must be visible before the user acts, not after. Its expression here is entirely Delta's: empty boxes keep the #191B20 fill and take a 1.5px border in #6A7077, a darker step of Delta's own muted gray, measuring 3.51:1. The disabled button drops the brown for Delta's standard surface #22242C with muted text, so disabled finally looks disabled and turns orange only when six digits exist. Same elements, same taps; autofill removes taps when confirmed.

Before · actual screenshot
Current Delta OTP screen: five nearly invisible code boxes and a brown Submit Code button
empty box 1.01:1disabled label 12.23:1
After · rebuilt in HTML and CSS
9:41

Enter the 6-digit code sent to ••••••2552.

24sResend Code
Submit Code
  1. 1Boxes visible at rest: border #6A7077, 3.51:1 measured
  2. 2Number masked to ••••••2552, hyphen fixed
  3. 3Disabled means disabled: surface fill, muted label; goes orange on the sixth digit
Mockup rendered in code with Delta's sampled tokens. System font stands in for Delta's UI face.
Inventory check: 9 of 9 elements preserved · 0 taps added
Backed nowRisk: low, new users onlyAuto-submit on sixth digit stays a hypothesis, see H1
Screen 02 · Identity Verification, Individual

KYC entry: one task wearing four names

Element inventory, current screen15 items · all preserved in the proposal
  1. Back chevron
  2. Title "Identity Verification"
  3. Tab Individual, selected, orange outline
  4. Tab Non Individual
  5. Card with amber top border
  6. Heading "KYC Verification"
  7. Label "Requirements"
  8. Row Phone verification + icon (+ green check once done)
  9. Row "Aadhar card" + AADHAAR icon
  10. Row PAN card + icon
  11. Row Selfie Verification + icon
  12. Label "Benefits"
  13. Row Unlimited daily withdrawals + check
  14. Row Unlimited lifetime withdrawals + check
  15. CTA "Verify Now" in one build, "Get Verified" in another
Steelman

This screen does the right things. Requirements are disclosed before the flow starts, with recognizable government-ID iconography. Benefits answer "why bother" on the same screen. The phone row already earns a green check once verified, so a progress language exists. Listing requirements up front matches what the better flows in Elsewhen's cross-exchange onboarding analysis were praised for: explicit verification status [17].

The problems, with backing
  • Four labels for one action. Home stepper and banner say Complete KYC. The post-OTP notification says Initiate KYC. This screen said Verify Now at 8:30 and Get Verified at 8:36, captured on the same device, same day. Nielsen's consistency heuristic is direct about this: users should not have to wonder whether different words mean the same thing [20]. Mid-funnel doubt is expensive precisely here; CleverX's KYC research names comprehension failure as a primary abandonment driver [18]. Two live variants of one screen also hints at a release-process gap worth a separate conversation.
  • "Aadhar card" sits 40 pixels from an icon spelling AADHAAR. UIDAI spells it Aadhaar. The app contradicts itself on the single most sensitive document it will ever ask for. The same misspelling family appears in Delta's own support guide, including "Your phone number should be linkedin with your Adhaar," live as of January 2026 [4].
  • The 3-minute promise vanishes mid-flow. The home stepper says "Takes less than 3 minutes" and the signup sheet says "ETA: 3 min." This screen, where the actual work starts, says nothing. Goal-gradient research shows visible progress toward a goal accelerates completion [21]; dropping the clock at the moment of effort is the reverse of that.
The improvement, in Delta's system

One verb, everywhere: Complete KYC at entry points, Verify Now inside the flow, and the notification grammar fixed in the same pass ("Congratulations, your mobile number is now verified"). The requirements list extends Delta's own checkmark pattern into an honest step list: done steps keep the green check, the current step gets an "Up next" marker in Delta's soft orange, nothing else changes. The ETA line reuses the home screen's exact phrasing, so the promise follows the user in. Principle from Coinbase's flow, one primary action framed by quiet supporting text, expressed with Delta's existing card, tabs, and button.

Before · both live builds
Identity Verification screen with Verify Now button and Aadhar card spelling
8:30, CTA reads "Verify Now". "Aadhar card" beside the AADHAAR icon.
Same Identity Verification screen with Get Verified button
8:36, same screen, CTA now reads "Get Verified". Phone row has its check.
After · rebuilt in HTML and CSS
9:41
Individual
Non Individual

KYC Verification

Requirements

Phone verification ✓ Done
Aadhaar card Up next
PAN PAN card
Selfie Verification

Benefits

Unlimited daily withdrawals
Unlimited lifetime withdrawals
Verify Now

Takes less than 3 minutes

  1. 1Requirements become an honest step list: ✓ Done, then Up next, in Delta's existing colors
  2. 2Aadhaar spelled the way UIDAI spells it, matching the icon beside it
  3. 3One CTA verb in-flow, and the home screen's own 3-minute promise carried into the flow
Mockup rendered in code with Delta's sampled tokens.
Inventory check: 15 of 15 elements preserved · 0 taps added
Backed nowRisk: low, copy and state rendering onlyTrack KYC entry-to-start rate per surface before and after
Screen 03 · Identity Verification, Non Individual

Entity KYC: the highest-stakes screen with the least care

Element inventory, current screen9 items visible · all preserved in the proposal
  1. Back chevron and title
  2. Tabs Individual / Non Individual (selected)
  3. Instruction email documents to compliance.delta@exceliumtech.com
  4. Email link, tappable, orange
  5. SLA copy "within 48 hours"
  6. Row Phone verification with green check
  7. Collapsible "Requirements for a company"
  8. Instruction "Text in your email must contain the following :"
  9. Checklist Name of Entity, CIN, incorporation date, registered address, mobile, email ID, PAN, PEP/RPEP declaration (list continues below the fold)
Steelman

Entity KYC is rare and document-heavy. An email channel avoids building and maintaining an upload flow that a small fraction of signups will ever touch, and a 48-hour SLA is honest about a manual review. The requirements list is genuinely complete. This is a sensible operational shortcut; the screen just was not given the same finishing pass as the individual path.

The problems, with backing
  • An off-brand domain is asking for CIN, PAN, and PEP declarations. Indian banking UX has spent a decade training users that unfamiliar domains requesting identity documents mean phishing, and abandonment research names unexpected third parties at the trust moment as a driver [18]. If Excelium Tech is Delta India's registered legal entity, one line of attribution converts the alarm into legitimacy. If it is not required, the address should move to a delta.exchange domain. That is a legal call, so the mockup carries a placeholder line and the decision is flagged to the Delta team.
  • Copy drift on a compliance surface. A space before the colon, "Entity Email id," and Entity/Institution used interchangeably. Individually trivial; together, on the screen a company's finance officer reads while deciding whether to email their PAN somewhere, carelessness reads as risk.
  • Visual grammar breaks between the tabs. The Individual tab speaks in an iconized card checklist; this tab is a wall of bullets. Same screen family, same heuristic as before: consistency [20].
Before · actual screenshot
Non Individual KYC screen instructing users to email documents to an exceliumtech.com address
After · rebuilt in HTML and CSS
9:41
Individual
Non Individual

Please email your verification documents to compliance.delta@exceliumtech.com. We will verify them within 48 hours and notify you once the process is complete.

Excelium Tech Pvt. Ltd. is the registered operator of Delta Exchange India.
Phone verification
Requirements for a company

Text in your email must contain the following:

  • Name of entity
  • CIN number
  • Date of incorporation of entity
  • Address of registered office and principal place of business
  • Entity mobile number
  • Entity email ID
  • PAN number of entity
  • Declaration of PEP/RPEP or Not a PEP (Politically Exposed Person), Yes/No, for all authorised signatories
  1. 1One attribution line under the address. Exact wording belongs to legal; this is a placeholder, not final copy
  2. 2Punctuation and casing normalized: "following:", "email ID", "entity" used consistently
Mockup rendered in code with Delta's sampled tokens.
Inventory check: 9 of 9 elements preserved · 0 taps added · 1 line of copy added, flagged for legal
Backed now (copy)Domain choice: legal decision, see R1Risk: low, entity applicants onlyWatch "is this email legitimate" support tickets
Screen 04 · KYC → Selfie verification (HyperVerge)

The instruction that argues with its own picture

Element inventory, current screen6 items · all preserved in the proposal
  1. Delta logo, centered
  2. Heading "Take a Selfie"
  3. Instruction "Please remove spectacles, hat and mask. A clearly visible face will get approved faster"
  4. Illustration hand holding phone, face in frame
  5. CTA "Proceed to Capture →"
  6. Attribution "powered by HyperVerge"
Steelman

An instruction interstitial before the camera is the right pattern: it raises first-attempt pass rates, and every re-capture request measurably raises abandonment; Signicat's research, as relayed by Zyphe, puts re-upload requests at three times the abandonment [22]. Explaining before capturing is correct. Keeping the vendor badge is honest.

The problem, with backing
  • The copy says remove spectacles and mask; the illustration wears both. The picture is the instruction most users actually read, and here it demonstrates exactly the two things that cause a failed capture. This is error prevention in its purest form: eliminate the error-prone condition instead of waiting for the retry [20]. CoinDCX's equivalent guide instructs capture "without your spectacles," which is the norm this screen intends and its own artwork contradicts [9].
  • Grammar: "spectacles, hat and mask" mixes number; "spectacles, hats and masks" or "your spectacles, hat or mask."
  • One unknown, flagged rather than asserted: on the next screen the capture ring renders red while the face is correctly framed. Red usually means error. Whether it turns green on alignment cannot be known from a still frame, so it lives in the hypotheses, not here.
The improvement, in Delta's system

Same layout, same copy position, same CTA, same vendor badge. The illustration simply complies with its own instruction: bare face, no glasses, no mask. This is a vendor-side asset swap (the screen is HyperVerge's), so the change ships through vendor configuration, not Delta app code. Worth knowing before scheduling it.

Before · actual screenshot
Take a Selfie screen whose illustration shows a person wearing spectacles and a mask
The illustrated face wears spectacles and a mask under an instruction to remove them.
After · rebuilt in HTML and CSS
9:41

Take a Selfie

Please remove spectacles, hats and masks. A clearly visible face will get approved faster.

Proceed to Capture  →
✓ powered by HyperVerge
  1. 1The illustration now obeys its own instruction: no spectacles, no mask
Vendor screen; change ships via HyperVerge asset configuration.
Inventory check: 6 of 6 elements preserved · 0 taps added
Backed nowRisk: low, vendor asset swapMeasure first-attempt selfie pass rate before and after
Screen 05 · Portfolio, unverified and unfunded

The zero-state that hides its own zero

Element inventory, current screen18 items · all preserved in the proposal
  1. Account selector "Main" + Cross chip + chevron
  2. KYC banner shield icon + "Please verify your KYC to Trade."
  3. Button "Complete KYC" in banner
  4. Tabs Balances / Positions / Orders / Stop Orders
  5. History icon
  6. Label "Account Value" with tooltip underline
  7. Values ₹ and $ (currently masked asterisks)
  8. Eye toggle show/hide balances
  9. Link "PNL Analytics"
  10. Button Withdraw, outlined
  11. Button + Add Funds, filled
  12. Toggle Balances / Risk and Margin
  13. Row FNO Wallet + Primary chip + chevron
  14. Row Available for Trading
  15. Row Spot Wallet + chevron
  16. Row Fee Voucher
  17. Info "Conversion Rate: 1 USD = ₹85"
  18. Bottom nav (system-wide)
Steelman

Masked-by-default balances are a legitimate trading-app convention; the eye toggle exists for over-the-shoulder privacy, and habituated traders rely on it. Withdraw living beside Add Funds is standard wallet furniture. The likely implementation story is simple: one masking code path for all account states. For a funded trader, every one of these choices is right. This proposal touches only the branch those traders never occupy.

The problems, with backing
  • ₹✱✱✱✱✱✱ on an account that has never held a rupee is noise, not privacy. There is nothing to protect, and the mask hides the one honest fact, ₹0, that frames the next action. Nielsen's first heuristic is visibility of system status [20]; NN/g's empty-state guidance says these screens exist to communicate status and hand the user a direct path to the key task [23]. An asterisk row does neither. It can also read as "there might be money here I cannot see," which is a strange first impression for a financial product to make.
  • A full-strength Withdraw button for a user who cannot withdraw is a guaranteed dead-end tap. Error prevention says remove or visibly disable actions that can only fail [20]. Under the working rule, removal does not happen inside a mockup: the button stays, and the disable decision goes to the Delta team as R2 with a data ask attached.
  • "PNL Analytics" vs "PnL Offset" in the margin sheet two taps away. One casing, "PnL," everywhere.
The improvement, in Delta's system

State-aware rendering for the zero-balance, unverified branch only: real zeros instead of asterisks, one muted caption naming the path forward, and the eye toggle untouched, so masking behavior for funded accounts never changes. Principle borrowed from Coinbase's empty portfolio: an empty state is a signpost, not a blank. Expressed entirely with Delta's existing card, type scale, and muted gray.

Before · actual screenshot
Portfolio screen showing masked asterisk balances and an active-looking Withdraw button on an unverified account
After · rebuilt in HTML and CSS
9:41
Main Cross
🛡 Please verify your KYC to Trade. Complete KYC
BalancesPositionsOrdersStop Orders
Account ValuePnL Analytics
₹0.00 $0.00

Complete KYC, then add funds to start trading.

Withdraw
+ Add Funds
Balances
Risk and Margin
FNO WalletPrimary₹0.00$0.00
Available for Trading₹0.00$0.00
Spot Wallet₹0.00$0.00
Fee Voucher₹0.00$0.00
Conversion Rate: 1 USD = ₹85
  1. 1Honest zeros for the never-funded branch; the eye toggle and funded-account masking are untouched
  2. 2One muted caption pointing at the path: KYC, then funds
  3. 3PnL cased consistently with the margin sheet
Mockup rendered in code with Delta's sampled tokens. Withdraw stays, unchanged: its disable is R2, a decision for the Delta team.
Inventory check: 18 of 18 elements preserved · 0 taps added · Withdraw untouched in-mockup
Backed, ship behind an A/BRisk: low-medium, shared surface, state-branch onlyGate: A/B on KYC-complete to first-deposit conversion, see H4
Screen 06 · Add Bank → First deposit

Bank and deposit: what I will not pretend to have seen

Element inventory, post-KYC home entry pointthe only bank surface I captured
  1. Stepper ✓ KYC Done (green) → 2 Add Bank (active) → 3 Deposit Funds
  2. CTA "Add Bank Account →"
  3. Caption "Great! Add your bank account for deposits & withdrawals."
  4. Quick actions note: Support becomes Live Chat post-KYC
  5. Everything else unchanged from the standard home
The honest boundary

My capture set does not include the bank-details form or the deposit screen, and I will not mock up screens I have not inventoried. Inventing them here would be exactly the kind of confident fabrication this document exists to avoid. What I can do is read Delta's own documentation against competitor patterns and mark where I would look first, with the mockups waiting on real captures.

What the documentation already tells us
  • Delta verifies bank accounts with a ₹1 penny drop, own-name accounts only. Its published failure-reasons article lists name-vs-PAN mismatch, joint accounts, and corporate accounts as rejection causes [5]. Every one of those failures is predictable before the user submits. The pattern worth testing when the screens are captured: state "account must be in your name, matching your PAN" before the form, not inside a rejection email. Groww documents the same penny-drop-plus-name-match mechanic [10], and Upstox, Dhan, and Zerodha all offer a UPI-based verification where the account details are fetched from a ₹1 UPI payment instead of typed [11], which removes the two fields users mistype in the first place. Whether that alternative is worth Delta's backend cost is unknowable from outside; it is listed as a pattern, not a recommendation.
  • Delta's minimum deposit is ₹1 by UPI, with UPI credits typically inside 15 minutes [6]. That is the lowest entry point I found anywhere in this research; CoinDCX's documented bank-transfer minimum is ₹100 [12]. A ₹1 first deposit is a trust-building device competitors cannot match, and nothing in the captured funnel says it out loud. Where exactly to say it depends on the deposit screen I have not seen.
  • A non-transfer, named as such: Coinbase's deposit screen explains card and PayPal rails [24]. None of that applies here. Indian VDA platforms run on UPI, IMPS, NEFT, and RTGS against a whitelisted own-name account, so the deposit-method explainer pattern transfers but its content does not.
The entry point, captured
Post-KYC home screen with KYC Done checked and Add Bank Account call to action
The stepper's KYC check and step-completion caption are genuinely good. This pattern, extended inside KYC, is what Screen 02 proposes.
No mockup: screens not capturedFirst step: capture and inventory the bank form and deposit screens
Not mocked, on purpose

Recommendations beyond the mockups

Each of these changes flow, removes something, or needs a decision only Delta can make. None of them belongs inside a mockup drawn by an outsider.

R1 · Resolve the exceliumtech.com question

Either the address moves to a delta.exchange domain, or the entity relationship is stated on the screen (the Screen 03 mockup carries placeholder wording). Which one is correct depends on why the address exists, and that answer lives with legal. Success measure: entity-KYC submission rate and "is this email legitimate" tickets.

Defect is backedFix choice needs legal input
R2 · Decide what Withdraw does at ₹0, unverified

Error prevention argues for visibly disabling it with an inline reason until there is anything to withdraw [15] [20]. But that changes an interaction, so it is Delta's call, and it is cheaply testable before any build: count Withdraw taps from zero-balance unverified accounts. If the number is trivial, drop this entirely; if not, the defect confirmed itself.

Needs tap-volume data first
R3 · One resume entry instead of three competing CTAs

Home stepper, banner carousel, and notification all sell KYC in parallel with different verbs. A single persistent entry that resumes at the exact step ("Resume verification, 2 steps left") applies the goal-gradient effect [21] where it is known to work. This is a flow change; it should wait for step-level funnel data showing where people actually stall, and the DigiLocker round trip out to Meri Pehchaan and back is my primary suspect, flagged as H2 until the data exists.

Needs step-level instrumentation
R4 · Put the demo where new users wait

Delta already operates a full demo environment, but its own guide confirms it is web-only and needs a separate account [7]. Bybit's demo, by contrast, is an in-app mode, explicitly exempt from KYC, auto-funded with virtual assets [8]. The dead air in Delta's funnel, the KYC-review wait and the pre-funding lull, is exactly where an existing asset could work. Compliance sign-off on pre-verification simulated trading comes first, then sizing the churn windows, then an entry-point A/B, because the demo could also delay deposits (H3). If it ever ships natively, the demo state label must be impossible to miss; a trader confusing demo with live is a financial error, not a UX quibble.

Sized bet: compliance, then data, then A/B
R5 · A fallback for the Aadhaar-linked-phone dead end

DigiLocker eKYC requires the OTP to reach the Aadhaar-registered mobile; every Indian flow I researched shares the dependency [3]. CoinDCX and WazirX document manual-upload fallbacks; Zerodha routes those users to an offline process; Delta's public docs show no path at all [4]. Users whose number changed since Aadhaar registration hit a wall after they have already invested effort. Whether the fix is a manual queue or pre-flight copy warning about the requirement is a product decision with compliance implications.

Gap is backed by documentationFix needs compliance input
R6 · Give copy an owner

Aadhar/Aadhaar/Adhaar, FnO/F&O/FNO, PNL/PnL, "Congratulations your Mobile Number", "6 digit", a support guide saying "linkedin with your Adhaar" [4]. Each defect lives in a different team's territory, which is the tell: nobody owns copy, so every team assumed someone else checked. A two-page style guide (canonical spellings, one KYC verb, casing rules), one sweep, and a lint rule in the release pipeline turns this from a recurring embarrassment into a solved problem.

Backed now, cheapest item on this page
R7 · A token-level look at white-on-orange

White text on Delta's primary orange measures 2.85:1, under the 3:1 large-text line and the 4.5:1 body-text line. That is a brand-wide token, far outside onboarding scope, and I would not touch it in a funnel project. Flagged for whenever the design system next gets attention.

Out of scope, flagged only
The second bucket

Hypotheses and open questions

Things I believe but cannot prove from the outside. Each comes with the test that would settle it. I would rather hand you this list than dress these up as certainties.

HypothesisWhat I do not knowThe test that settles it
H1 · Auto-submit on the sixth OTP digit beats manual submitAuto-submit occasionally surprises users mid-correctionA/B: entry time, error rate, resend taps
H2 · The DigiLocker round trip is the biggest in-KYC leakNo step-level funnel data; the Aadhaar-linked-phone dependency makes it my prime suspectInstrument phone → Aadhaar → PAN → selfie → approval, with timestamps
H3 · A demo entry point raises first-deposit conversionIt could equally delay funding while people playSize churn in the two wait windows, then A/B the entry point on time-to-first-deposit
H4 · Honest zeros beat masked asterisks for never-funded accountsWhether the mask actually causes hesitation or is just ignoredA/B on KYC-complete to first-deposit; pull Withdraw-tap volume from ₹0 accounts first
H5 · The red capture ring reads as an error stateWhether it turns green on alignment; I have one frameA device test; if it never changes color, fix the semantics with HyperVerge
H6 · iOS one-time-code AutoFill is not implementedA screenshot cannot show QuickType behaviorOne physical-device test against Apple's documented SMS format

Data I would ask for on day one: step-level KYC funnel with timestamps, churn in the KYC-review and pre-funding windows, Withdraw-tap volume from zero-balance accounts, support-ticket themes mentioning KYC or email legitimacy, and any prior onboarding A/B results, so nothing above re-tests what Delta already knows.

Traceability

Sources

Everything cited above, checked on 5 July 2026. Contrast ratios were computed from screenshot pixel samples using the WCAG 2.x relative-luminance formula.

  1. Delta Exchange India, Guide to KYC verification: delta.exchange/support/solutions/articles/80001150767
  2. Delta Exchange India, Welcome offer (₹250 KYC voucher + ₹250 trading voucher): delta.exchange/support, article 80001191555
  3. Delta Exchange India user guide, account setup (KYC = PAN + Aadhaar + selfie, "3 mins"): guides.delta.exchange
  4. Delta Exchange community, "How do I verify my Adhaar during KYC" (Aadhaar-linked phone requirement; "linkedin with your Adhaar" typo; live as of Jan 2026): community.delta.exchange/t/2250
  5. Delta Exchange India, Reasons for bank account verification failure (penny drop, own-name only): delta.exchange/support, article 80001137203
  6. Delta Exchange India, minimum and maximum deposit (UPI min ₹1, max ₹1,00,000; IMPS to ₹5,00,000): delta.exchange/support, article 80001178035
  7. Delta Exchange India, Demo trading guide (web-only, separate account required): delta.exchange/support, article 80001188998
  8. Bybit Help Center, Demo Trading FAQ ("Identity Verification is not required for using a Demo Account"; auto-credited virtual assets): bybit.com/en/help-center
  9. CoinDCX support, KYC with DigiLocker (Aadhaar OTP to registered mobile; selfie "without your spectacles"): support.coindcx.com
  10. Groww help, What is penny drop (Re 1 drop, name-vs-PAN match): groww.in/help
  11. Upstox help center, Add a bank account via UPI (₹1 debit, auto-fetched details, refunded); Dhan support, DigiLocker mandatory + UPI-PIN bank verification; Zerodha support, online account opening (UPI bank-proof path, Aadhaar-linked mobile gate): upstox.com, dhan.co, support.zerodha.com
  12. CoinDCX support, INR deposits via bank transfer (min ₹100, IMPS): support.coindcx.com
  13. Coinbase Help, 2-step verification troubleshooting (6-digit SMS code, wait 30 seconds then resend): help.coinbase.com
  14. W3C, Understanding WCAG 2.2 SC 1.4.11 Non-text Contrast (3:1 against adjacent colors; inactive components exempt): w3.org/WAI/WCAG22/Understanding/non-text-contrast
  15. Nielsen Norman Group, Button States: Communicate Interaction (disabled buttons that look active; explain why): nngroup.com/articles/button-states-communicate-interaction
  16. Apple Developer Documentation, Enabling AutoFill for domain-bound SMS codes (textContentType = .oneTimeCode; "@domain #code" last line): developer.apple.com/documentation/security
  17. Elsewhen, How are crypto exchanges tackling onboarding (explore-first dominant; explicit verification progress indicators rated best): elsewhen.com/blog
  18. CleverX, Fintech onboarding research: KYC flow optimization, June 2026 ("most fintech teams see between 20 and 40 percent of new sign-ups abandon somewhere in the KYC flow"; comprehension and trust cues as drivers). Reported by the vendor without a named underlying study; cited as attributed, not as measured fact: cleverx.com/blog
  19. Signicat, The Battle to Onboard 2022 (survey of 7,600 European consumers; 68% abandoned a financial sign-up within the year): signicat.com/the-battle-to-onboard-2022
  20. Nielsen Norman Group, 10 Usability Heuristics for User Interface Design (#1 visibility of system status, #4 consistency and standards, #5 error prevention): nngroup.com/articles/ten-usability-heuristics
  21. Kivetz, Urminsky, Zheng, The Goal-Gradient Hypothesis Resurrected, Journal of Marketing Research 43(1), 2006: journals.sagepub.com/doi/abs/10.1509/jmkr.43.1.39
  22. Zyphe, How to reduce KYC onboarding drop-off, April 2026 (re-upload requests triple abandonment, attributed by Zyphe to Signicat research). Vendor-published figures, flagged as such: zyphe.com/resources/blog
  23. Nielsen Norman Group, Designing Empty States in Complex Applications (communicate status, deliver pathways to key tasks): nngroup.com/articles/empty-state-interface-design
  24. Coinbase App Store listing screens, deposit-method explainers (credit/debit, PayPal, bank accounts), captured 2026. Referenced for the explainer pattern only; the rails do not transfer to Indian VDA platforms.

Also consulted but deliberately not cited as backing: app store reviews (excluded by the evidence bar), the widely repeated "70% abandon KYC over 3 minutes" figure (vendor-circulated with no traceable primary study), and a "McKinsey 2024" onboarding statistic I could not trace to McKinsey.