createVP
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 'vcs' parameter should be an array of 'W3CVerifiableCredential'.
W3CVerifiableCredential represents a signed Verifiable Credential (includes proof)
in either JSON or compact JWT format.
*/
const vcs = [
{
credentialSubject: {
profile: { name: 'Kiran Pachhai', nickname: 'KP Woods' },
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-07T16:11:16.000Z',
expirationDate: '2024-04-07T16:11:16.000Z',
proof: {
type: 'JwtProof2020',
jwt: 'eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MTI1MDYyNzYsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQcm9maWxlTmFtZXNDcmVkZW50aWFsIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7InByb2ZpbGUiOnsibmFtZSI6IktpcmFuIFBhY2hoYWkiLCJuaWNrbmFtZSI6IktQIFdvb2RzIn19fSwic3ViIjoiZGlkOnBraDplaXAxNTU6MToweDJlNWZmMDI2N2I2NzhhMGZhZjlhOWY1YjBmYmY3YWM5NjM4YjViNTciLCJuYmYiOjE2ODA4ODM4NzYsImlzcyI6ImRpZDpwa2g6ZWlwMTU1OjE6MHgyZTVmZjAyNjdiNjc4YTBmYWY5YTlmNWIwZmJmN2FjOTYzOGI1YjU3In0.0NgbBHE6Le9yXj_T5nMcl1b5eUprh2YT3wpF6b3wUjQPEpdbzmH7syqmlP5eLtOyraBNjUmrH7ZH3i4duVgkeQ'
}
}
]
const vcIds = ['9c81cabf-ef8e-4223-9987-a1c25773bece']
const proofInfo = {
proofFormat: 'jwt',
type: 'ProfileNamesPresentation'
}
const options = {
// If you want to get the VCs from multiple stores, you can pass an
// array like so:
// store: ['snap', 'googleDrive']
store: ['snap']
}
const metamaskAddress = '0x2e5fF0267b678A0FAF9A9f5b0FBf7Ac9638B5b57'
const params = {
metamaskAddress,
vcs,
/*
Uncomment the below line if you want to pass in the vcIds
*/
// vcIds,
proofInfo,
options
/*
Uncomment the below line if you want to connect to a non-metamask account
*/
// ...externalAccountParams
}
const handleCreateVPAPI = async () => {
await window.ethereum.request({
method: 'wallet_invokeSnap',
params: {
snapId,
request: {
method: 'createVP',
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?

