bitshares / bitshares/bitshares-ui

Simply integration of KYC requirements for Gateways

Open
#3,144 9 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
520
Forks
575
Avg merge
12h 7m
Merged PRs (30d)
5

Description

This is the outline of the most simple way to implement KYC into the reference UI.

The Deposit / Withdraw Modal and Legacy show a Link to the Gateways main website where a user can sign up, do KYC or similar. The gateway also asks the user for their BitShares account name and stores that internally in their database.

When Depositing or Withdrawing, the Gateway indicates to the user how much is min Deposit and min/max Withdraw. This call can be done on a per user basis. Then the gateway can give the values for each user depending on their status, and the gateway knows internally which BitShares account names have what limits (due to having done KYC or similar).

This can be realized by adding HTTP args `?bitshares_account=xxx` to the current calls, or by adding a new call to the gateway API (`gateway.url/status?bitshares_account=xxx[&asset=symbol]`) which either returns all, or just the limits for one asset. This can also be a signed request to ensure the gateway that the user is in full control of this account. The status call should also return a link where the user can go to do KYC / signup / get their limits increased, this should not be hardcoded.

What changes for the user:
- if the gateway has no limitation or requires KYC, nothing changes
- if the gateway requires KYC, the user will see 0 as max withdraw value and is not able to proceed. He also sees the link to the gateway where he can do KYC. After doing KYC, the gateway integration in the ref UI reports a higher limit, the gateway recognizes its users only by the bitshares account name

Benefit: No messy or complicated code in reference UI how to login into gateway APIs (no usage of localstorage) or do KYC. The gateway API can remain stateless. The flow for the users only changes by having to visit the gateway website once and do KYC.

Downside: Gateways have to ask users for their BitShares account name, and store this link in their internal database.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Start by locating the Deposit/Withdraw Modal, Legacy gateway integration, and current gateway API calls in the reference UI. Define completion around per-account gateway limits and a gateway-provided KYC or signup link being reflected in the UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain, javascript, react
Domain
authentication, blockchain, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.