Skip to content

[Feature Request]: KYC Withdrawal Flow #750

@jatin-agarwal-yral

Description

@jatin-agarwal-yral

Problem Statement

Note - To be deployed when Ticket #751 is live on production
Scope & Requirements:

  • Integrate Persona Hosted Flow for KYC verification (@komal-sai-yral has admin access to Persona)
  • Show KYC Status and corresponding withdrawal limits to the user.
  • Allow both KYC and non-KYC users to play games, but limit withdrawal privileges.

User Flow:

  1. Trigger Points for KYC:

Withdraw Flow:

  • If user tries to withdraw SATS, prompt KYC if not already done.
  • Show withdrawal limits for both KYC & non-KYC users.
  1. KYC Status Visibility:

Wallet Page:

  • Show KYC Status: Active (Green)/ Not Active (Grey).

Hamburger Menu:

  • Add a “Verify KYC” option linking to Persona flow.
  • Show KYC Status below the profile picture
  1. KYC Flow:
  • On click, redirect to Persona Hosted Flow.
  • While Persona flow is in progress → Show "Processing KYC" loader on yral.com.
  • Post-completion, redirect back to yral.com → Show Success screen and update KYC Status to Active.
  1. Withdrawal Limits:

KYC Done:

  • Min Withdraw: 50 SATS
  • Max Withdraw: 1000 SATS

KYC Not Done:

  • Withdraw Limit: 50 SATS per day

Business Document

Figma - https://www.figma.com/design/PWaICsmkuxhLO7upCaobbk/Yral-Wallet?node-id=404-4528&p=f&t=oX7bhYNtW0iQL39v-0

User Stories

  • As a user, I want to see my KYC status and be able to initiate KYC, So that I can verify my account and unlock higher withdrawal limits.

  • As a user, I want to see my withdrawal limits and be prompted to complete KYC when withdrawing, So that I understand the benefits of verifying my account.

  • As a verified user, I want my withdrawal limits to increase after completing KYC, So that I can withdraw more SATS without restrictions.

  • As a user, I want a seamless transition between yral.com and Persona, So that the KYC experience feels integrated and frictionless

  • As a system, I want to initiate the Persona Hosted Flow and receive KYC completion status, So that user KYC status is updated securely and automatically.

  • As a withdrawal service, I want to enforce withdrawal limits based on a user’s KYC status, So that bots cannot bypass withdrawal limits.

  • As a system, I want an API endpoint for the frontend to fetch the user’s KYC status, So that the UI can show correct KYC information on wallet and menus

Acceptance Criteria

  • KYC Status is visible on the Wallet Page (Active = Green, Not Done = Grey).
  • KYC Status is visible in the Hamburger Menu, with a “Verify Now” button if not done.
  • Clicking "Verify Now" redirects user to Persona Hosted Flow.
  • During redirection/loading, show a Processing popup on yral.com.
  • Once KYC is successfully completed, user is redirected back to yral.com and sees a success confirmation screen.
  • KYC status changes to Active (Green) in the wallet and hamburger menu post completion.
  • When user initiates a withdrawal, show a modal as per design
  • If KYC is not done, user can withdraw only 50 SATS/day.
  • If KYC is done, user can withdraw between 50 - 1000 SATS per withdrawal

Sub-issues

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions