saveVC
How to call the API from an app
const snapId = `npm:@hashgraph/hedera-identify-snap`
const externalAccountParams = {
externalAccount: {
accountIdOrEvmAddress: '0.0.12345',
curve: 'ED25519'
}
}
/*
The 'data' parameter should be an array of 'W3CVerifiableCredential'.
W3CVerifiableCredential represents a signed Verifiable Credential (includes proof)
in either JSON or compact JWT format.
*/
const data = [
{
credentialSubject: {
profile: {
name: 'KP'
},
id: 'did:pkh:eip155:1:0x2e5ff0267b678a0faf9a9f5b0fbf7ac9638b5b57'
},
issuer: {
id: 'did:pkh:eip155:1:0x2e5ff0267b678a0faf9a9f5b0fbf7ac9638b5b57'
},
type: ['VerifiableCredential', 'ProfileNamesCredential'],
'@context': ['https://www.w3.org/2018/credentials/v1'],
issuanceDate: '2023-04-05T14:34:47.000Z',
expirationDate: '2024-04-05T14:34:47.000Z',
proof: {
type: 'JwtProof2020',
jwt: 'eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MTIzMjc2ODcsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQcm9maWxlTmFtZXNDcmVkZW50aWFsIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7InByb2ZpbGUiOnsibmFtZSI6IktQIn19fSwic3ViIjoiZGlkOnBraDplaXAxNTU6MToweDJlNWZmMDI2N2I2NzhhMGZhZjlhOWY1YjBmYmY3YWM5NjM4YjViNTciLCJuYmYiOjE2ODA3MDUyODcsImlzcyI6ImRpZDpwa2g6ZWlwMTU1OjE6MHgyZTVmZjAyNjdiNjc4YTBmYWY5YTlmNWIwZmJmN2FjOTYzOGI1YjU3In0.CR1A_XpG001_PCaAt3VN9G5Lt75gTm2M5YSt6trqhkEoW0wce9rU7SrsZnQ0drmaG2tee4IMrZFx241yi8UsLg'
}
}
]
const options = {
// If you want to auto save the generated VCs to multiple stores, you can pass an
// array like so:
// store: ['snap', 'googleDrive']
store: ['snap']
}
const metamaskAddress = '0x2e5fF0267b678A0FAF9A9f5b0FBf7Ac9638B5b57'
const params = {
metamaskAddress,
data,
options
/*
Uncomment the below line if you want to connect to a non-metamask account
*/
// ...externalAccountParams
}
const handleSaveVCAPI = async () => {
await window.ethereum.request({
method: 'wallet_invokeSnap',
params: {
snapId,
request: {
method: 'saveVC',
params: params
}
}
})
}How the API is handled between the app and snap

What the API does
Live Demo on CodePen
Last updated
Was this helpful?

