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.verifyEndorsementsSignedjsonRpcVerify endorsements 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
/api/v0/partnerRpc/verus.provisionStartedjsonRpcProvision started
/api/v0/partnerRpc/verus.provisionEndedjsonRpcProvision ended
/api/v0/partnerRpc/verus.valuLightProvisionStartedjsonRpcValu light provision started
/api/v0/partnerRpc/verus.valuLightProvisionEndedjsonRpcValu light provision ended
/api/v0/partnerRpc/verus.paymentStatusjsonRpcPayment status
/api/v0/partnerRpc/verus.identityGrantingStatusjsonRpcIdentity granting status
/api/v0/partnerRpc/verus.timelockResultjsonRpcTimelock result
/api/v0/partnerRpc/verus.revokeOrRecoveryActionProofjsonRpcRevoke or recovery action proof
/api/v0/partnerRpc/verus.agentIdCreatedjsonRpcAgent id created
/api/v0/partnerRpc/verus.agentBalancesjsonRpcAgent balances

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 }