Skip to content
On this page

Verus partner API

EndpointMethodDescription
/api/v0/partnerRpc/verus.verifyChallengejsonRpcVerify challenge
/api/v0/partnerRpc/verus.verifyPaymentjsonRpcVerify payment
/api/v0/partnerRpc/verus.musicCreatedjsonRpcMusic created
/api/v0/partnerRpc/verus.musicPurchasedjsonRpcMusic purchased
/api/v0/partnerRpc/verus.transactionUpdatedjsonRpcTransaction updated
/api/v0/partnerRpc/verus.dataSignedjsonRpcData signed
/api/v0/partnerRpc/verus.attestationFromWalletjsonRpcAttestation from wallet
/api/v0/partnerRpc/verus.attestationFetchedjsonRpcAttestation fetched
/api/v0/partnerRpc/verus.attestationProofsFetchedjsonRpcAttestation proofs fetched
/api/v0/partnerRpc/verus.verifyEndorsementSignedjsonRpcVerify endorsement signed
/api/v0/partnerRpc/verus.transferIdentityjsonRpcTransfer identity
/api/v0/partnerRpc/verus.nftMintedjsonRpcNft minted
/api/v0/partnerRpc/verus.paymentReadyjsonRpcPayment ready
/api/v0/partnerRpc/verus.currencyReadyjsonRpcCurrency ready

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
}

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 }

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 }