Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Binance KYC stamp to Gitcoin Passport #2539

Closed
Jkd-eth opened this issue Jun 3, 2024 · 3 comments · Fixed by #2678 or passportxyz/passport-scorer#628
Closed

Add Binance KYC stamp to Gitcoin Passport #2539

Jkd-eth opened this issue Jun 3, 2024 · 3 comments · Fixed by #2678 or passportxyz/passport-scorer#628
Assignees

Comments

@Jkd-eth
Copy link
Contributor

Jkd-eth commented Jun 3, 2024

User Story:

As a Passport user who uses Binance for my CEX
I want to be able to use BABT to prove my KYC
So that I can obtain the required Passport points for the Binance Stamp

Acceptance Criteria

(need criteria for the stamp)
GIVEN the user has a BABT issued to an account
WHEN we pull the meta data for the account's BABT
THEN we'll assign the Binance KYC IF the token has a valid and unique ID key/value pair

Stamp Funcitonality

  • Store the account address, tokenId, and id metadata for all accounts queried
  • We should hash the BABT tokenId instead of id (to prevent doxxing of users across accounts)
  • Users should not be able to mint a new Binance stamp on a different Account if the id in the meta data matches a previously issued, and non-expired stamp on another wallet
  • Any token that returns a blank ID in the meta data should return an error that the BABT Token has been revoked or moved to another wallet
  • Include in the 1 click verification flow - repoll metadata and re-issue automatically on login for another 90 days if the token is still valid

Stamp Details
Stamp 'card'
Binance (header)
Confirm your Binance Account Bound Token to prove your KYC
Assign 16.02 points (do we want all stamps to have a unique score fingerprint?)

Stamp Sidebar
Logo + Binance (Title)

Confirm your Binance Account Bound Token (BABT) [header]
Obtain your Binance Account Bound Token (BABT) by verifying your identity and logging into your Binance account. This will prove you're verified by Binance and have completed the KYC process.

Support guide on adding Binance (link to the support doc)

Verified Binance Account (header in credential section)
Account has valid BABT (credential)
16.02 points

Credential details & weights
"BinanceBABT": "16.021"

Product & Design Links:

Tech Details:

User facing website

BABT Spec

Each BABT has meta data that can be queried by API which provides a key value pair called id which contians the unique KYC. This is the value to store in our DB to maintain uniqueness (and not require oAuth to Binance). "You can use the id as the identity and for the same person, id will never be changed."

Wallet address A mints a BABT and is issued the Gitcoin Passport credential. Then the user revokes or remints on another address, Address B. The user will be issued a new token ID #, but this token will have the same ID meta data. In that case we'd need to store the ID in our system as your IP will just return a blank ID field for wallet address A, but the new address B BABT will have the same ID field we stored before which we'd prevent the user from using to get our credential? Is that how we should set it up?

Additional data that might be useful:

BABT Token List:
https://bscscan.com/token/0x2b09d47d550061f995a3b5c6f0fd58005215d7c8

Curl to get the metadata (JSON response):
Curl https://www.binance.info/bapi/asset/v1/public/wallet-direct/babt/metadata/

Example:
Curl https://www.binance.info/bapi/asset/v1/public/wallet-direct/babt/metadata/991414

Binance Logo SVG

Don't forget to update the decoder / bitmaps on the available networks to include this stamp.

Open Questions:

Notes/Assumptions:

@Jkd-eth Jkd-eth added this to Passport Jun 3, 2024
@Jkd-eth Jkd-eth moved this to Prioritized in Passport Jun 3, 2024
@tim-schultz tim-schultz self-assigned this Jul 3, 2024
@tim-schultz tim-schultz moved this from Prioritized to In Progress (WIP) in Passport Jul 3, 2024
@tim-schultz
Copy link
Collaborator

For

Wallet address A mints a BABT and is issued the Gitcoin Passport credential. Then the user revokes or remints on another address, Address B. The user will be issued a new token ID #, but this token will have the same ID meta data. In that case we'd need to store the ID in our system as your IP will just return a blank ID field for wallet address A, but the new address B BABT will have the same ID field we stored before which we'd prevent the user from using to get our credential? Is that how we should set it up?

I have added the SBT/BABT id as the record. This way if a user claims the stamp with one address, revokes their BABT, then claims the stamp with another address. They will be able to claim the stamp, but not receive any points since they will be deduplicated based on the BABT id.

@tim-schultz tim-schultz moved this from In Progress (WIP) to Blocked in Passport Jul 8, 2024
@tim-schultz
Copy link
Collaborator

Waiting for multi sig signers to add new provider to bitmap

@tim-schultz tim-schultz moved this from Blocked to Product/UX Review in Passport Jul 10, 2024
@octanaiv
Copy link

binance-logo
Here's the binance logomark @digitalmnt

@erichfi erichfi moved this from Product/UX Review to Ready to Deploy in Passport Jul 15, 2024
@erichfi erichfi moved this from Ready to Deploy to Done in Passport Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants