feat(iam, app, platforms): add micapass stamp #2194
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Intro
Micapass is AML compliance on-chain solution preventing bad actors getting access to DeFi protocols by offering wallet screening, KYC/AML person, and other proofs on-chain (humanity, geo location, etc.)
This pull request adds Micapass that validates the completion of several interactions with Micapass dApp. These actions can be performed on https://app.micapass.com/, where user can deploy their identity, perform KYC and do their wallet screening checks.
Micapass provides an API that can be used to check completion for each of these objectives(API key protected)*:
User story
As a passport holder, I want to verify my profile with Micapass and present one of / or all requested proofs: my identity deployment proof, KYC status, wallet screening proof, etc. in order to showcase my unique humanity to the community, compliancy with AML requirements and ensure transparency in verification process.
Acceptance criteria
GIVEN I have deployed Micapass Identity, with or without proofs
WHEN I verify my stamp
THEN I should get credential(s) from Micapass providers
Tech details
API endpoints for each type of verification are provided below. All of the endpoints may or may not return expiration period for the stamps (that is subject to change from the Micapass system side). In case API responds with expiration interval, it is used for the stamp's expiration, otherwise(for example, for a relatively immutable proof, such as identity deployment fact) - it's not provided and a default is used.
For API key, please reach out to hello@micapass.com.
Identity Deployment check
Checks if the user has successfully deployed an identity on any of the supported chains
KYC verification check
Checks if the user has passed KYC verification and has an active proof in Micapass system.
Wallet screening check
Checks if the user has an active wallet screening proof in Micapass system.
Open questions
Micapass want to dynamically/conditionally include records into the stamps, based on the Micapass backend response for each of the above verification links. Is that allowed, or the records structure/amount for each provider must be fixed and documented?
Checklist
Stamp Provider MicapassIdentityProvider
json
valid: true / false,
record: {
... // Unique payload identifying user
}
- [x] The attribute
valid
is false if the Stamp verification fails- [x] The record must contain the following attributes:
pii
Stamp Provider MicapassKycProvider
json
valid: true / false,
record: {
... // Unique payload identifying user
}
- [x] The attribute
valid
is false if the Stamp verification fails- [x] The record must contain the following attributes:
pii
Stamp Provider MicapassWalletScreeningProvider
json
valid: true / false,
record: {
... // Unique payload identifying user
}
- [x] The attribute
valid
is false if the Stamp verification fails- [x] The record must contain the following attributes:
pii