Proposal: SEP-?? - WebView-Based KYC Flow (Alternative to SEP-12) #1664
Replies: 4 comments 5 replies
-
|
Unfortunately, I have only one vote I would have voted for this twice As an anchor implementing KYC for SEP 6 and SEP 24 transactions, this would be really useful. If we had an interactive KYC process, we can leverage already existing provider SDKs etc to make a SEP 6 transaction a lot more seamless. It could even be used ahead of a SEP 24 transaction, because at the moment, we "bake" SEP 12 into 24 but if it's separated like this, both processes can be cleanly segregated. Also this saves the anchor implementation details such as binary upload logic, and file processing if we already have the KYC providers doing that work, we can just leverage it. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for writing the proposal @ydag, I think my primary question is "Instead of adding an interactive webview prior to the SEP-6 flow, why not use SEP-24?". If its because SEP-24 requires a webview for every transaction, rather than just the first time, should we consider making the webview in SEP-24 an optional step? |
Beta Was this translation helpful? Give feedback.
-
|
Have we considered supporting something like SEP-12's |
Beta Was this translation helpful? Give feedback.
-
|
Echoing @JakeUrban comments, SEP-6 is designed for API flow which also includes the KYC. Having a WebView for KYC, it creates a mix of API flow and interactive WebView flow. On the surface, we may benefit from both flows, we also suffers from the hassle of handling both flows. If an anchor already has WebView for KYC, I think it would be natural to use WebView for creating transactions if necessary. The SEP-24 create transaction call has most of the SEP-6 request parameters covered. It would be an easy modification to make the interactive However, making the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
We are proposing SEP-??, a WebView-based KYC flow as an alternative to SEP-12’s API-based approach. This does not replace SEP-12 or SEP-24 but provides an optional way for wallets and anchors to handle KYC using an interactive WebView.
Rationale
Many local anchors we work with require users to submit KYC every time they initiate their first transaction. When integrating SEP-6, we found that replacing SEP-12 with an interactive WebView was a better alternative for several reasons:
How SEP-?? Works
Full SEP-?? Proposal
Abstract
This SEP defines a standard for Stellar clients to complete KYC verification through a WebView-based flow, providing an alternative to SEP-12’s API-based submission. It enables a seamless user experience while ensuring interoperability between wallets and anchors. The standard supports authentication via SEP-10. Anchors implement a WebView-based KYC flow, while wallets open and interact with it, ensuring compatibility across services.
Key Points of SEP-??
Prerequisites
An anchor must define the location of its
KYC_WEBVIEW_SERVERin itsstellar.tomlfile if it supports WebView-based KYC. This allows client apps to locate the anchor’s WebView-based KYC service.Anchors and clients must support at least one of SEP-10 or SEP-45 for web authentication and use it for all WebView-based KYC interactions.
Customer GET
This endpoint allows clients to:
If the server does not have a registered customer matching the provided parameters, it should return the WebView URL where the user can complete their KYC.
This allows clients to verify whether a customer’s KYC is accepted, rejected, not needed, or still needs more info. If additional or updated KYC information is required, the response should include the WebView URL where the user can complete or update their KYC process.
Request
idstringGETrequest. If the customer has not been registered, they do not yet have anid.memosubvalue, it must match this parameter value. If a muxed account is used as the JWT'ssubvalue, memos sent in requests must match the 64-bit integer subaccount ID of the muxed account. If theaccountis aC...account, thememomust not be specified. See the Shared Accounts section for more information.typeasset_codestringUSDC). Required if the KYC process is asset-specific.amountstringpayment_typestringbank,credit_card, or other anchor-specific values.langen. Language code specified using ISO 639-1. Human readable descriptions, choices, and messages should be in this language.Response
idstringstatusurlmessagestringCustomer Statuses
typepassed. It is possible for an accepted customer to move back to another status if the KYC provider determines it needs more info at a later date, or if the customer shows up on a sanctions list.urlentry is required in this case.messagemust be supplied in this case.Looking for Feedback
We’d love to hear the Stellar community’s thoughts on SEP-??. If there’s general support, we can move forward with formalizing SEP-??. Looking forward to your thoughts! 🚀
Beta Was this translation helpful? Give feedback.
All reactions