Verus partner API
Verify challenge
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.verifyChallenge
Description: Endpoint is used by crypto server to verify user authorization with VerusId.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"verificationStatus": bool // true when challenge is successful
"error": string // not empty when challenge failed
"identity": { // client verus identity
"address": string // Verus identity iAddress
"name": string // Verus identity name
}
"signature": string // in case of sign message challenge
"attestations": map[sectionName]{ attestation JSON } // in case of attestations challenge
"cypherData": string // data from wallet encrypted for client public key or zAddress
"epk": string // encryption epk, if used cypherData
}
Response:
{ empty }
Verify payment
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.verifyPayment
Description: Endpoint is used by crypto server to verify user payment with VerusId.
Request:
{
"challengeId": string // challenge id is unique for each payment attempt
"paymentStatus": bool // true when payment is successful
"productIdentity": string // verus identity of purchased product
"error": string // not empty when authorization failed
}
Response:
{ empty }
Music created
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.musicCreated
Description: Endpoint is used by crypto server to notify user that Verus music has been created (or failed).
Request:
{
"identity": string
"iAddress": string
"contentIdentity": string
"contentData": {
"artistName": string // artist name
"albumName": string // album name
"genre": string // album genre
"url": string // url to album within valuverse application (set by server)
"networkId": string // metaverse network id (set by server)
"signature": string // disclaimer signed by verus account, HASH string
"price": map[string]float // album price per crypto currency
"tracks": [{
"resourceId": string
"name": string
"duration": float
}]
"albumCover": {
"resourceId": string
}
"artistLogo": {
"resourceId": string
}
"sleeveDocument": { // table of contents, notes, lyrics
"resourceId": string
}
}
"error": string
}
Response:
{ empty }
Music purchased
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.musicPurchased
Description: Endpoint is used by crypto server to notify user that Verus music has been purchased (or failed).
Request:
{
"challengeId": string
"identity": string
"iAddress": string
"contentSubIdentities": [ string ] // subIdentity names for each copy of content (eg. copy1.album1@)
"contentData": {
"artistName": string // artist name
"albumName": string // album name
"genre": string // album genre
"url": string // url to album within valuverse application (set by server)
"networkId": string // metaverse network id (set by server)
"signature": string // disclaimer signed by verus account, HASH string
"price": map[string]float // album price per crypto currency
"tracks": [{
"resourceId": string
"name": string
"duration": float
}]
"albumCover": {
"resourceId": string
}
"artistLogo": {
"resourceId": string
}
"sleeveDocument": { // table of contents, notes, lyrics
"resourceId": string
}
}
"error": string
}
Response:
{ empty }
Transaction updated
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.transactionUpdated
Description: Endpoint is used by crypto server to notify server and user that Verus transaction has been updated.
Request:
{
"challengeId": string
"name": string
"blockchainTransactionId": string
"status": bool
"error": string
}
Response:
{ empty }
Data signed
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.dataSigned
Description: Endpoint is used by crypto server to notify server and user that Verus data has been signed.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"status": bool // true when challenge is successful
"error": string // not empty when challenge failed
"identityName": string // Verus identity that signed the message
"iAddress": string // Verus identity IAddress that signed the message
"signature": string // Verus verification signature
"verifyLink": { // for social account verification
"hash": string
"identityName": string
"signature": string
"verifyLink": string
}
}
Response:
{ empty }
Attestation from wallet
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.attestationFromWallet
Description: Endpoint is used by crypto server to provide attestation data from wallet to server.
Request:
{
"challengeId": string
"error": string
"iAddress": string
"attestations": [{
"attestationName": string
"attestationData": map[string]{ custom structure }
}]
}
Response:
{ empty }
Attestation fetched
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.attestationFetched
DEPRECATED
Description: Endpoint is used by crypto server to notify server and user that Verus attestation has been fetched.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when challenge failed
"attestation": map[sectionName]{ attestation JSON } // Verus attestation
"iAddress": string // Verus attestation identity IAddress
}
Response:
{ empty }
Attestation proofs fetched
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.attestationProofsFetched
DEPRECATED
Description: Endpoint is used by crypto server to notify server and user that Verus attestation proofs has been fetched.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when challenge failed
"attestationProofs": map[sectionName]{ attestation JSON } // Verus attestation proofs
"iAddress": string // Verus attestation identity IAddress
}
Response:
{ empty }
Verify endorsement signed
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.verifyEndorsementSigned
Description: Endpoint is used by crypto server to verify endorsement signed by Verus user.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when challenge failed
"endorsement": { // endorsement blockchain model
"version": string
"flags": string
"endorsee": string
"message": string
"reference": string
"signature": map[string]{ custom structure }
"txid": string
}
}
Response:
{ empty }
Verify endorsements signed
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.verifyEndorsementsSigned
Description: Endpoint is used by crypto server to verify multiple endorsements signed by Verus user.
Request:
{
"challengeId": string
"identityName": string
"signatures": [{
"version": int
"systemid": string
"referenceid": string
"hashtype": int
"signaturehash": string
"identityid": string
"signaturetype": int
"signature": string
}]
"error": string
}
Response:
{ empty }
Transfer identity
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.transferIdentity
Request:
{
"error": string // Error message if any occurred during the transfer
"objectId": string // Identifier of the object (namespace/currency)
"toId": string // Identity that became the new owner
"challengeId": string // Challenge ID for the transfer
}
Response:
{ empty }
Nft minted
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.nftMinted
Request:
{
"error": string // Error message if any
"identityName": string // Name of the minted NFT identity
"challengeId": string // ID related to the challenge or minting process
}
Response:
{ empty }
Payment ready
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.paymentReady
Request:
{
"error": string // Error message if any
"challengeId": string // ID associated with the payment process
}
Response:
{ empty }
Currency ready
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.currencyReady
Request:
{
"error": string // Error message if any
"challengeId": string // ID related to the namespace/currency setup
}
Response:
{ empty }
Provision started
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.provisionStarted
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when challenge failed
}
Response:
{ empty }
Provision ended
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.provisionEnded
Request:
{
"challengeId": string // challenge id is unique for each challenge
"txid": string // transaction id
"error": string // not empty when challenge failed
"identity": { // identity created by the provisioning transaction, present when provisioning succeeded
"address": string // Verus identity iAddress
"name": string // Verus identity name
}
}
Response:
{ empty }
Valu light provision started
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.valuLightProvisionStarted
Description: Callback for an identity queued via valuLight:provisionIdentity.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when the job failed before its name commitment went out
}
Response:
{ empty }
Valu light provision ended
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.valuLightProvisionEnded
Description: Callback for an identity queued via valuLight:provisionIdentity.
Request:
{
"challengeId": string // challenge id is unique for each challenge
"txid": string // registration transaction id; empty when it never registered
"error": string // not empty when the job failed
"identity": { // identity created by the provisioning transaction, present when provisioning succeeded
"address": string // Verus identity iAddress
"name": string // Verus identity name
}
}
Response:
{ empty }
Payment status
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.paymentStatus
Request:
{
"challengeId": string
"status": string
"blockchainTransactionId": string
}
Response:
{ empty }
Identity granting status
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.identityGrantingStatus
Description: Callback to notify about status of ambassador identity granting status.
Request:
{
"identity": string
"place": string
"id": string
"token": string
"status": string
"error": string
}
Response:
{ empty }
Timelock result
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.timelockResult
Request:
{
"challengeId": string // challenge id is unique for each challenge
"error": string // not empty when challenge failed
}
Response:
{ empty }
Revoke or recovery action proof
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.revokeOrRecoveryActionProof
Request:
{
"error": string
"status": bool
"challengeId": string
"identity": string
"action": string // revoke/recovery
}
Response:
{ empty }
Agent id created
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.agentIdCreated
Request:
{
"challengeId": string
"identityName": string
"iAddress": string
"error": string
}
Response:
{ empty }
Agent balances
Method: jsonRpc
HTTP Method: POST
Path: /api/v0/partnerRpc/verus.agentBalances
Request:
{
"challengeId": string
"balances": map[string]float // map of balance name (e.g., i-address) to balance value
"error": string
}
Response:
{ empty }