Unbound Crypto Asset Security Platform ("CASP") Management API v1.0.2112
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Unbound`s Crypto Asset Security Platform ("CASP") provides the advanced technology and the architecture to secure crypto asset transactions. The crypto asset solution contains the CASP service and different end points (humans or BOTs).
CASP provides the framework to create Accounts, which hold multiple Vaults where secrets are stored. Access control is managed by the Quorum Policy for all of the Participants.
For information about using these APIs, see the Unbound CASP Developers Guide, or the API references:
For more information about CASP, see:
- Unbound CASP Release Notes - information about CASP APIs.
- Unbound CASP FAQ - Frequently asked questions.
- Unbound CASP User Guide - contains system requirements, installation instructions, and more.
For more information about the BIP standards, see:
- BIP32 - HD wallets - information about the BIP32 standard for hierarchical deterministic wallets.
- BIP44 - multi-account wallets - information about the BIP44 standard for multi-account hierarchy for deterministic wallets.
- SLIP44 - coin types - defines the index values for the coin types.
Base URLs:
Email: Unbound Security Support Web: Unbound Security Support
BYOW Vault Operations
Refer to the Vault Operations section in the Unbound CASP Developers Guide.
Create new vault
Code samples
const inputBody = '{
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"curveName": "Ed25519",
"providerKind": "string",
"hierarchy": "NONE",
"coinType": 0,
"firstAccountName": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"policies": [
{
"name": "string",
"description": "string",
"enabled": true,
"isOffline": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"policyKind": "APPROVAL"
}
],
"isOffline": true,
"attributes": {
"property1": "string",
"property2": "string"
},
"dataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/vaults',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/vaults \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/accounts/{accountId}/vaults
This request starts the process of creating a new vault. The vault is created only after the participants approve the vault creation according to the vault policy.
Note the following requirements depending on the value of cryptoKind:
- For TOTS - no curveName is needed
- For EDDSA - curveName must be ED25519
- For ECDSA - curveName can be either SECP256K1 (the default) or SECP256R1
Body parameter
{
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"curveName": "Ed25519",
"providerKind": "string",
"hierarchy": "NONE",
"coinType": 0,
"firstAccountName": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"policies": [
{
"name": "string",
"description": "string",
"enabled": true,
"isOffline": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"policyKind": "APPROVAL"
}
],
"isOffline": true,
"attributes": {
"property1": "string",
"property2": "string"
},
"dataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
body | body | CreateVaultRequest | true | Create Vault Request |
Example responses
201 Response
{
"id": "string",
"name": "string",
"description": "string",
"accountID": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | New vault created successfully | CreateVaultDataResponse |
404 | Not Found | Missing data | CASPErrorResponse |
500 | Internal Server Error | Create vault failed | CASPErrorResponse |
List BYOW vaults
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/vaults',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/vaults \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/accounts/{accountId}/vaults
List all vaults in the account. By default only active vaults are listed.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
status | query | array[string] | false | Show vaults with one or more of the following statuses: pending, ready, deactivated |
providerKind | query | string | false | Filter by coin type |
filter | query | string | false | Search the vault names and descriptions |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: Name, Provider, Description, Status, Offline |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results after applying the filter and sort |
limit | query | integer(int32) | false | Maximum number of results to return |
Enumerated Values
Parameter | Value |
---|---|
status | PENDING |
status | READY |
status | DEACTIVATED |
Example responses
200 Response
{
"totalItems": 0,
"items": [
{
"id": "string",
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"providerKind": "string",
"isActive": true,
"status": "NOT_INITIALIZED",
"statusText": "Waiting for participants to join",
"providerData": "string",
"pendingOperations": 0,
"hierarchy": "NONE",
"isDeletable": true,
"approvalStructure": "QUORUM",
"creationTime": "string",
"modificationTime": "string",
"offline": true
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseVaults |
400 | Bad Request | Bad Request | CASPErrorResponse |
404 | Not Found | Account not found | CASPErrorResponse |
500 | Internal Server Error | List vaults per account failed | CASPErrorResponse |
Get BYOW vault info
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{id}
Get details of a vault
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
Example responses
200 Response
{
"description": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true,
"sparePartiesLeft": 0
}
],
"id": "string",
"name": "string",
"accountID": "string",
"status": "NOT_INITIALIZED",
"statusText": "Waiting for participants to join",
"isActive": true,
"cryptoKind": "ECDSA",
"curveName": "string",
"providerKind": "string",
"providerData": "string",
"hierarchy": "string",
"policies": [
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true,
"policyKind": "APPROVAL"
}
],
"isOffline": true,
"approvalStructure": "QUORUM",
"attributes": {
"property1": "string",
"property2": "string"
},
"dataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"creationTime": "string",
"modificationTime": "string",
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | VaultDetails |
404 | Not Found | Vault not found | CASPErrorResponse |
500 | Internal Server Error | Get vault details failed | CASPErrorResponse |
Create a new address
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountIndex | path | integer(int32) | true | Account index |
chain | path | string | true | Add vault group member request |
encoding | query | string | false | Key encoding |
Enumerated Values
Parameter | Value |
---|---|
chain | change |
chain | external |
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"publicKey": "string",
"derivationString": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | CreateBip44AddressResponse |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Start a signing process
Code samples
const inputBody = '{
"keySpecs": {
"totsParams": [
{
"index": 0,
"numberOfFragments": 1
}
]
},
"dataToSign": [
"string"
],
"publicKeys": [
"string"
],
"derivationStrings": [
"string"
],
"description": "string",
"providerData": "string",
"details": "string",
"callbackUrl": "string",
"allowConcurrentKeyUsage": true,
"rawTransactions": [
"string"
],
"ledgerHashAlgorithm": "PLAIN",
"changeAddressDerivationString": "string",
"decimals": [
0
],
"ledger": "string",
"derivedWhitelistChildNumbers": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/sign',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{id}/sign \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/sign
Starts the process of a signing operation.
- For a quorum vault, the operation finishes when the minimum number of participants approve the transaction signing operation.
- You must provide a valid raw transaction.
You can check the task status by calling the /operations API. When the signature is ready it is provided in the response payload.
This service should be used when the blockchain management is done outside of CASP, as it only signs the transaction without sending it to the relevant blockchain.
Notes:
- Either publicKeys or derivationStrings must be provided.
- The size of rawTransactions must match dataToSign and publicKeys, or it should not be passed at all.
- If rawTransactions is provided, then the ledger or ledgerHashAlgorithm properties must be provided.
Body parameter
{
"keySpecs": {
"totsParams": [
{
"index": 0,
"numberOfFragments": 1
}
]
},
"dataToSign": [
"string"
],
"publicKeys": [
"string"
],
"derivationStrings": [
"string"
],
"description": "string",
"providerData": "string",
"details": "string",
"callbackUrl": "string",
"allowConcurrentKeyUsage": true,
"rawTransactions": [
"string"
],
"ledgerHashAlgorithm": "PLAIN",
"changeAddressDerivationString": "string",
"decimals": [
0
],
"ledger": "string",
"derivedWhitelistChildNumbers": [
0
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
body | body | SignRequest | true | Sign Request |
Example responses
200 Response
{
"operationID": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Sign request accepted | OperationResponse |
400 | Bad Request | Bad request | SignRequestRejectedErrorResponse |
500 | Internal Server Error | Sign failed | CASPErrorResponse |
Start incoming transaction signing
Code samples
const inputBody = '{
"callbackUrl": "string",
"ledger": "string",
"rawTransactions": [
"string"
],
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/incomingTransactionSign',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{id}/incomingTransactionSign \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/incomingTransactionSign
Starts the process of a signing operation.
- For a quorum vault, the operation finishes when the minimum number of participants approve the transaction signing operation.
- You must provide a valid raw transaction.
You can check the task status by calling the /operations API. When the signature is ready it is provided in the response payload.
This service should be used when the blockchain management is done outside of CASP, as it only signs the transaction without sending it to the relevant blockchain.
Notes:
- Either publicKeys or derivationStrings must be provided.
- The size of rawTransactions must match dataToSign and publicKeys, or it should not be passed at all.
- If rawTransactions is provided, then the ledger or ledgerHashAlgorithm properties must be provided.
Body parameter
{
"callbackUrl": "string",
"ledger": "string",
"rawTransactions": [
"string"
],
"description": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
body | body | IncomingTransactionSignRequest | true | Internal sign Request |
Example responses
200 Response
{
"operationID": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Sign request accepted | OperationResponse |
400 | Bad Request | Bad request | SignRequestRejectedErrorResponse |
500 | Internal Server Error | Sign failed | CASPErrorResponse |
Get sign operation
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/sign/{operationid}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/operations/sign/{operationid} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/sign/{operationid}
Returns the sign operation metadata. The Operation ID parameter must be from a 'QUORUM_SIGN' operation.
The order of array fields (such as publicKeys and dataToSign) in the response is guaranteed to have the same order provided in the Start a signing process endpoint.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationid | path | string | true | Operation ID |
Example responses
200 Response
{
"operationID": "string",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"signatures": [
"string"
],
"v": [
0
],
"providerData": "string",
"details": "string",
"rawTransactions": [
"string"
],
"ledgerHashAlgorithm": "IGNORE",
"callbackUrl": "string",
"subAccount": 0,
"keySpecs": {
"indexNofPairs": [
{
"index": 0,
"numberOfFragments": 0
}
]
},
"rejectionCause": {
"text": "string",
"reason": "string",
"decliningParticipant": {
"participantId": "string",
"participantName": "string"
},
"rejectedPolicy": {
"policyName": "string",
"policyId": "string"
}
},
"collectedData": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | SignMetadata |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Get Operation status failed | CASPErrorResponse |
List operations
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/operations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/operations \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/accounts/{accountId}/operations
List operations associated with account vaults. By default, only operations which are in process (not completed) will be returned.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID |
status | query | array[string] | false | Show operations with one or more of the following statuses: approved, completed, pending, pending activation, canceled, rejected, failed, error |
filter | query | string | false | Filter by vault names and operation description |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: Vault, Kind, CreatedAt, StatusText, Description |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results after applying the filter and sort |
limit | query | integer(int32) | false | The maximum number of results to return |
Enumerated Values
Parameter | Value |
---|---|
status | APPROVED |
status | COMPLETED |
status | FAILED |
status | PENDING |
status | CANCELED |
status | REJECTED |
status | PENDING_ACTIVATION |
status | WAITING_DATA_COLLECTION |
Example responses
200 Response
{
"totalItems": 0,
"items": [
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"vaultName": "string",
"providerKind": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseOperations |
400 | Bad Request | Bad Request | CASPErrorResponse |
404 | Not Found | Not found | CASPErrorResponse |
500 | Internal Server Error | List operations per account failed | CASPErrorResponse |
List sub account operations
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/operations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/operations \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/operations
List sub account operations.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountIdentifier | path | string | true | Account identifier, which can be the index or the name |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results |
limit | query | integer(int32) | false | The maximum number of results to return |
Example responses
200 Response
{
"totalItems": 0,
"items": [
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseOperationsInfo |
400 | Bad Request | Incorrect vault type | CASPErrorResponse |
500 | Internal Server Error | List sub account operations failed | CASPErrorResponse |
Get operation details
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/{operationid}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/operations/{operationid} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/{operationid}
Get the details of an CASP operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationid | path | string | true | Operation ID |
Example responses
200 Response
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | OperationDetails |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Get Operation status failed | CASPErrorResponse |
Cancel a pending operation
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/{operationid}/cancel',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/operations/{operationid}/cancel \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/operations/{operationid}/cancel
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationid | path | string | true | Operation ID |
Example responses
404 Response
{
"type": "string",
"title": "string",
"details": "string",
"status": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Cancel a pending operation failed | CASPErrorResponse |
Update vault policies
Code samples
const inputBody = '[
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/policies',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{id}/policies \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{id}/policies
Update vault policies
Body parameter
[
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
body | body | PolicyUpdateDetails | true | Create Vault Request |
Example responses
200 Response
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | OperationInfo |
400 | Bad Request | bad request | CASPErrorResponse |
404 | Not Found | Vault not found | CASPErrorResponse |
500 | Internal Server Error | Update vault policies failed | CASPErrorResponse |
Public key calculation status
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/calculatePublicKey/{operationid}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/operations/calculatePublicKey/{operationid} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/calculatePublicKey/{operationid}
For some keys, calculating public keys requires approval of the admin group. This request queries the operation status.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationid | path | string | true | Operation ID |
Example responses
200 Response
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"totsParams": [
{
"index": 0,
"numberOfFragments": 0
}
],
"publicKeys": [
"string"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | CalculatePublicKeyOperationDetails |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Get Operation status failed | CASPErrorResponse |
Status of vault attributes operation
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/updateVaultDataCollectorsGroups/{operationId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/operations/updateVaultDataCollectorsGroups/{operationId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/updateVaultDataCollectorsGroups/{operationId}
Returns the operation metadata. The Operation ID parameter must be from an 'UPDATE_DATA_COLLECTION_CONFIGURATION' operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationId | path | string | true | Operation ID |
Example responses
200 Response
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"newVaultAttributes": {
"property1": "string",
"property2": "string"
},
"oldVaultAttributes": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UpdateVaultAttributesOperationDetails |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Get operation status failed | CASPErrorResponse |
BYOW Policy Management
Refer to the Policy Management section in the Unbound CASP Developers Guide.
Add member to vault
Code samples
const inputBody = '{
"participantID": "string",
"description": "string",
"policyId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members
This API is used if a participant becomes unavailable or leaves an account and needs to be replaced with a new participant. A new participant may be added to an existing vault, but requires the approval of the existing vault quorum.
Body parameter
{
"participantID": "string",
"description": "string",
"policyId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
approvalGroupId | path | string | true | Approval Group Id |
body | body | AddVaultParticipantRequest | true | Add vault group participant request |
Example responses
200 Response
{
"operation": {
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string"
},
"participant": {
"id": "string",
"accountID": "string",
"name": "string",
"email": "string",
"status": "NOT_ACTIVATED",
"isActive": true,
"accountName": "string",
"role": "string",
"pushEnabled": true,
"offline": true,
"activeOperations": 0,
"deviceType": "IOS",
"creationTime": "string",
"modificationTime": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | AddMemberResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Status of join policy vault operation
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/joinpolicyvault/{operationid}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/operations/joinpolicyvault/{operationid} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/joinpolicyvault/{operationid}
Returns join policy vault operation details. The Operation ID parameter must be from a 'JOIN_POLICY_VAULT' operation.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
operationid | path | string | true | Operation ID |
Example responses
200 Response
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"policies": [
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
}
}
],
"vaultName": "string",
"groupNameToJoin": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | JoinPolicyVaultOperationDetails |
404 | Not Found | Operation not found | CASPErrorResponse |
500 | Internal Server Error | Get Operation status failed | CASPErrorResponse |
Set vault member status
Code samples
const inputBody = '{
"status": "DEACTIVATED"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status
The suspended participant no longer takes part in the vault approval processes. Note that you can only suspend or revoke a user if the remaining number of participants is sufficient for the quorum, unless 'force' flag is provided.
Body parameter
{
"status": "DEACTIVATED"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
participantId | path | string | true | Participant ID |
vaultId | path | string | true | vault ID |
force | query | boolean | false | Force update of participant status. Warning: Using this flag can result in an unusable vault! |
body | body | UpdateParticipantStatusRequest | true | Participant status update request |
Example responses
200 Response
{
"id": "string",
"name": "string",
"status": "ACTIVATED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ParticipantStatusChangeResponse |
202 | Accepted | Accepted | OperationDetails |
403 | Forbidden | Suspending or revoking this participant would make the vault not operational (too few active participants left) | CASPErrorResponse |
404 | Not Found | Participant not found | CASPErrorResponse |
500 | Internal Server Error | Set vault member status failed | CASPErrorResponse |
Set vault member status (deprecated)
Code samples
const inputBody = '{
"status": "DEACTIVATED",
"policyId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/members/{participantId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{id}/members/{participantId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{id}/members/{participantId}
The suspended participant no longer takes part in the vault transaction approval processes. Note that you can only suspend or revoke a user, if the remaining number of participants is sufficient for the quorum policy, unless 'force' flag is provided.
Body parameter
{
"status": "DEACTIVATED",
"policyId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
participantId | path | string | true | Participant ID |
id | path | string | true | vault ID |
body | body | UpdateParticipantStatusWithPolicyRequest | true | Participant status update request |
Example responses
404 Response
{
"type": "string",
"title": "string",
"details": "string",
"status": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
404 | Not Found | Participant not found | CASPErrorResponse |
500 | Internal Server Error | Set vault member status failed | CASPErrorResponse |
Set policy member status
Code samples
const inputBody = '{
"status": "DEACTIVATED"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status
The suspended participant no longer takes part in the vault transaction approval processes. Note that you can only suspend or revoke a user, if the remaining number of participants is sufficient for the quorum policy, unless 'force' flag is provided.
Body parameter
{
"status": "DEACTIVATED"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
participantId | path | string | true | Participant ID |
vaultId | path | string | true | vault ID |
policyId | path | string | true | policy ID |
force | query | boolean | false | Force update of participant status |
body | body | UpdateParticipantStatusRequest | true | Participant status update request |
Example responses
200 Response
{
"id": "string",
"name": "string",
"status": "ACTIVATED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ParticipantStatusChangeResponse |
202 | Accepted | Accepted | OperationDetails |
403 | Forbidden | Suspending or revoking this participant would make the vault not operational (too few active participants left) | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Set vault member status participant failed | CASPErrorResponse |
BYOW Keychain Management
Refer to the Keychain Management section in the Unbound CASP Developers Guide.
Add a coin type to a vault
Code samples
const inputBody = '{
"coinType": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/coins
Body parameter
{
"coinType": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
body | body | AddBip44CoinRequest | true | Add vault group participant request |
Example responses
404 Response
{
"type": "string",
"title": "string",
"details": "string",
"status": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
List all the coins in a vault
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{id}/coins
This endpoint is only functional if you generated a BIP44 vault.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Vault ID |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results |
limit | query | integer(int32) | false | The maximum number of results to return |
Example responses
200 Response
{
"totalItems": 0,
"items": [
0
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseBip44Coins |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Get vault public key
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/publickey',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/publickey \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/publickey
Returns a deterministic vault's public key. Note that this is only valid for a vault with no hierarchy.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
encoding | query | string | false | Key encoding |
Enumerated Values
Parameter | Value |
---|---|
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"publicKey": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | VaultPublicKeyResponse |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Create an account
Code samples
const inputBody = '{
"accountName": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts
Add an account to a coin in a vault.
This endpoint is only functional if you generated a BIP44 vault.
Body parameter
{
"accountName": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
body | body | AddBip44AccountRequest | false | Add account request |
Example responses
200 Response
{
"publicKeys": [
"string"
],
"chains": [
"string"
],
"accountName": "string",
"accountIndex": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Bip44AccountResponse |
400 | Bad Request | Bad Request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
List accounts in a vault
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts
List all the accounts in a vault for a given coin.
This endpoint is only functional if you generated a BIP44 vault.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results |
limit | query | integer(int32) | false | The maximum number of results to return |
Example responses
200 Response
{
"totalItems": 0,
"items": [
{
"name": "string",
"index": 0
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseBip44Accounts |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Find account index by name
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/find?accountName=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/find?accountName=string \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/find
This endpoint is only functional if you generated a BIP44 vault.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountName | query | string | true | Account name |
Example responses
200 Response
{
"index": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Bip44AccountIndex |
400 | Bad Request | Incorrect vault type | CASPErrorResponse |
404 | Not Found | Account index not found | CASPErrorResponse |
500 | Internal Server Error | find account index failed | CASPErrorResponse |
Get account by identifier
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}
Get detailed information about a vault for a given coin type and account index.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountIdentifier | path | string | true | Account identifier, which can be the index or the name |
Example responses
200 Response
{
"accountName": "string",
"accountIndex": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GetBip44AccountByIdentifierResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
List chain addresses
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses
List all the BIP44 addresses in a vault for a given coin type, account index and address chain type.
This endpoint is only functional if you generated a BIP44 vault.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountIndex | path | integer(int32) | true | Account index |
chain | path | string | true | Address type |
encoding | query | string | false | Key encoding |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: lastUpdatedAt |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results |
limit | query | integer(int32) | false | The maximum number of results to return |
Enumerated Values
Parameter | Value |
---|---|
chain | change |
chain | external |
chain | all |
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"totalItems": 0,
"items": [
"string"
],
"chains": [
"string"
],
"accountName": "string",
"accountIndex": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseBip44ChainAddresses |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Get BYOW account backup
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup
Get backup for BIP44 account.
This endpoint is only functional if you generated a BIP44 vault.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
coinType | path | integer(int32) | true | Coin type |
accountIdentifier | path | string | true | Account identifier, which can be the index or the name |
Example responses
200 Response
{
"vaultId": "string",
"backupData": "string",
"bipLevel": 0,
"cpar": "string",
"parentFingerprint": "string",
"childNumber": 0,
"publicKey": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | BackupData |
400 | Bad Request | Incorrect vault type | CASPErrorResponse |
404 | Not Found | Vault not found | CASPErrorResponse |
500 | Internal Server Error | Get account backup failed | CASPErrorResponse |
Derive a key in a vault
Code samples
const inputBody = '{
"pathToDeriveFrom": "string",
"hardDerivation": true,
"childIndex": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/derivations
This endpoint is only functional if you generated a BIP32 vault.
Body parameter
{
"pathToDeriveFrom": "string",
"hardDerivation": true,
"childIndex": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
encoding | query | string | false | Key encoding |
body | body | DeriveBip32KeypairRequest | true | Derive a keypair in a vault |
Enumerated Values
Parameter | Value |
---|---|
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"derivationPath": "string",
"publicKey": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GetBip32KeyResponse |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
List all keys in a vault
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/derivations
This endpoint is only functional if you generated a BIP32 vault.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
encoding | query | string | false | Key encoding |
skip | query | integer(int32) | false | The number of results to skip from the beginning of the results |
limit | query | integer(int32) | false | The maximum number of results to return |
Enumerated Values
Parameter | Value |
---|---|
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"totalItems": 0,
"items": [
{
"derivationPath": "string",
"publicKey": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ListResponseBip32Keys |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Add participant failed | CASPErrorResponse |
Get public key by derivation path
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivation?derivationPath=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivation?derivationPath=string \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/derivation
This endpoint is only functional if you generated a BIP32 vault.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
derivationPath | query | string | true | Derivation path |
encoding | query | string | false | Key encoding |
Enumerated Values
Parameter | Value |
---|---|
encoding | DER |
encoding | compressed |
encoding | uncompressed |
encoding | plain |
Example responses
200 Response
{
"derivationPath": "string",
"publicKey": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GetBip32KeyResponse |
400 | Bad Request | Bad request | CASPErrorResponse |
404 | Not Found | Item not found | CASPErrorResponse |
500 | Internal Server Error | Get derivation failed | CASPErrorResponse |
Get backup data for public key
Code samples
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
# You can also use wget
curl -X GET https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey}
The vault cryptographic material is backed up with a key that is external to the CASP system. The backup can be used for safe recovery of the vault in case of service failure, participants losing their shares, or termination of CASP usage.
This endpoint is only functional if you generated a BIP32 vault.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
vaultId | path | string | true | Vault ID |
publicKey | path | string | true | public key |
Example responses
200 Response
{
"vaultId": "string",
"backupData": "string",
"bipLevel": 0,
"cpar": "string",
"parentFingerprint": "string",
"childNumber": 0,
"publicKey": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | BackupData |
400 | Bad Request | Incorrect vault type | CASPErrorResponse |
404 | Not Found | Vault not found | CASPErrorResponse |
500 | Internal Server Error | Get vault backup data failed | CASPErrorResponse |
Schemas
AccountAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"global": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
global | boolean | false | none | none |
AccountDetails
{
"id": "string",
"name": "string",
"isGlobal": true,
"isDeletable": true,
"creationTime": "string",
"stats": {
"participants": {
"total": 0,
"inactive": 0
},
"operations": {
"total": 0,
"pending": 0
},
"vaults": {
"total": 0,
"inactive": 0,
"pending": 0
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Account ID |
name | string | true | none | Account name |
isGlobal | boolean | true | none | Is global account |
isDeletable | boolean | true | none | Is account can be deleted |
creationTime | string | true | none | Account creation time |
stats | Stats | false | none | none |
AccountsAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"global": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [AccountAuditItem] | true | none | Items |
ActivateParticipantResponse
{
"id": "string",
"activationCode": "string",
"name": "string",
"rejoinOperationIds": [
"string"
],
"failedToRejoinVaults": [
{
"vaultId": "string",
"vaultName": "string",
"error": "string"
}
],
"serverAuthenticationKey": "string",
"serverEncryptionKey": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | ParticipantWithVault ID |
activationCode | string | true | none | Activation code for the specified participant |
name | string | true | none | ParticipantWithVault name |
rejoinOperationIds | [string] | true | none | Rejoin operationIds |
failedToRejoinVaults | [RejoinVaultErrorResponse] | true | none | Rejoin operation failed on vault |
serverAuthenticationKey | string | false | none | The server authentication key |
serverEncryptionKey | string | false | none | The server encryption key |
AddBip44AccountRequest
{
"accountName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accountName | string | true | none | The account name |
AddBip44CoinRequest
{
"coinType": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
coinType | integer(int32) | true | none | The coin type |
AddMemberDetails
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"groupName": "string",
"participantName": "string",
"participantID": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
groups | [ApprovalGroupDetails] | true | none | Operation approval groups |
policyDetails | PolicyDetails | false | none | none |
vaultName | string | true | none | Vault name for the operation |
groupName | string | true | none | Group name to join |
participantName | string | true | none | Participant name |
participantID | string | true | none | Participan ID |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
AddMemberResponse
{
"operation": {
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string"
},
"participant": {
"id": "string",
"accountID": "string",
"name": "string",
"email": "string",
"status": "NOT_ACTIVATED",
"isActive": true,
"accountName": "string",
"role": "string",
"pushEnabled": true,
"offline": true,
"activeOperations": 0,
"deviceType": "IOS",
"creationTime": "string",
"modificationTime": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operation | OperationDetails | true | none | none |
participant | ParticipantDetails | true | none | none |
AddVaultParticipantRequest
{
"participantID": "string",
"description": "string",
"policyId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
participantID | string | true | none | ParticipantWithVault ID |
description | string | false | none | Description |
policyId | string | false | none | policy id to join |
AllAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"isGlobal": true,
"rawTransaction": [
"string"
],
"amount": 0,
"assetType": "string",
"toAddress": [
"string"
],
"isWhitelisted": true,
"whitelistAddress": "string",
"description": "string",
"policyName": "string",
"policyID": "string",
"rejectionReason": "string",
"dataToSign": "string",
"publicKey": "string",
"signature": "string",
"keySpec": "string",
"operationID": "string",
"userID": "string",
"userName": "string",
"operationKind": "string",
"adminQuorum": "string",
"policies": "string",
"operationStatus": "string",
"trustedInstanceID": "string",
"vaultID": "string",
"vaultName": "string",
"participantID": "string",
"userRole": "string",
"userEmail": "string",
"userStatus": "string",
"derivationString": "string",
"dataCollectorId": "string",
"dataCollectorName": "string",
"attributeTemplateGroup": "string",
"dataCollectorState": "string",
"collectedData": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
isGlobal | boolean | false | none | none |
rawTransaction | [string] | false | none | none |
amount | integer | false | none | none |
assetType | string | false | none | none |
toAddress | [string] | false | none | none |
isWhitelisted | boolean | false | none | none |
whitelistAddress | string | false | none | none |
description | string | false | none | none |
policyName | string | false | none | none |
policyID | string | false | none | none |
rejectionReason | string | false | none | none |
dataToSign | string | false | none | none |
publicKey | string | false | none | none |
signature | string | false | none | none |
keySpec | string | false | none | none |
operationID | string | false | none | none |
userID | string | false | none | none |
userName | string | false | none | none |
operationKind | string | false | none | none |
adminQuorum | string | false | none | none |
policies | string | false | none | none |
operationStatus | string | false | none | none |
trustedInstanceID | string | false | none | none |
vaultID | string | false | none | none |
vaultName | string | false | none | none |
participantID | string | false | none | none |
userRole | string | false | none | none |
userEmail | string | false | none | none |
userStatus | string | false | none | none |
derivationString | string | false | none | none |
dataCollectorId | string | false | none | none |
dataCollectorName | string | false | none | none |
attributeTemplateGroup | string | false | none | none |
dataCollectorState | string | false | none | none |
collectedData | string | false | none | none |
AllAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"isGlobal": true,
"rawTransaction": [
"string"
],
"amount": 0,
"assetType": "string",
"toAddress": [
"string"
],
"isWhitelisted": true,
"whitelistAddress": "string",
"description": "string",
"policyName": "string",
"policyID": "string",
"rejectionReason": "string",
"dataToSign": "string",
"publicKey": "string",
"signature": "string",
"keySpec": "string",
"operationID": "string",
"userID": "string",
"userName": "string",
"operationKind": "string",
"adminQuorum": "string",
"policies": "string",
"operationStatus": "string",
"trustedInstanceID": "string",
"vaultID": "string",
"vaultName": "string",
"participantID": "string",
"userRole": "string",
"userEmail": "string",
"userStatus": "string",
"derivationString": "string",
"dataCollectorId": "string",
"dataCollectorName": "string",
"attributeTemplateGroup": "string",
"dataCollectorState": "string",
"collectedData": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [AllAuditItem] | true | none | Items |
AmountRange
{
"minimum": 0,
"maximum": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
minimum | number | false | none | lower limit |
maximum | number | false | none | upper limit |
ApiKeyInfo
{
"clientId": "string",
"tokenType": "BEARER",
"expiry_in": 0,
"scope": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
clientId | string | true | none | API key client_id |
tokenType | string | true | none | API key token type |
expiry_in | integer(int64) | true | none | API key expiry in |
scope | string | true | none | API key scope |
Enumerated Values
Property | Value |
---|---|
tokenType | BEARER |
ApprovalGroup
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Vault group name |
requiredApprovals | integer(int32) | true | none | Vault group required approvals |
members | [ApprovalGroupMember] | true | none | Vault group participants |
isOffline | boolean | true | none | Vault group isOffline property |
ApprovalGroupAccount
{
"id": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Account ID |
name | string | true | none | Account name |
ApprovalGroupDetails
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Approval group name |
members | [ApprovalGroupParticipant] | true | none | A list of participants in the group |
requiredApprovals | integer(int32) | true | none | The number of group participants that need to give approval |
order | integer(int32) | true | none | This field determines the order in which groups are prompted for approvals |
deactivateAllowed | boolean | true | none | A group participant can be suspended or revoked from this group |
isOffline | boolean | true | none | Group is offline - conclude only offline participants |
ApprovalGroupMember
{
"id": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Participant ID |
ApprovalGroupParticipant
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
approvedAt | string | false | none | ParticipantWithVault approval time |
id | string | true | none | ParticipantWithVault ID |
isApproved | boolean | true | none | ParticipantWithVault approval state |
name | string | true | none | ParticipantWithVault name |
status | string | true | none | ParticipantWithVault task status |
approvalGroupAccount | ApprovalGroupAccount | false | none | none |
label | string | true | none | ParticipantWithVault label |
isGlobal | boolean | true | none | ParticipantWithVault global state |
isActive | boolean | true | none | none |
globalStatus | string | true | none | none |
isOffline | boolean | true | none | none |
Enumerated Values
Property | Value |
---|---|
status | STARTED |
status | ACTIVATED |
status | DECLINED |
status | REVOKED |
status | SUSPENDED |
globalStatus | ACTIVATED |
globalStatus | REACTIVATING |
globalStatus | SUSPENDED |
globalStatus | REVOKED |
AttributeRuleDetailsResponse
{
"id": "string",
"op": "string",
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | attribute rule ID |
op | string | true | none | attribute rule operator |
value | string | true | none | attribute rule value |
AttributeRuleRequest
{
"id": "string",
"op": "string",
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | attribute`s template name |
op | string | false | none | operator |
value | string | true | none | attribute`s value |
AttributeTemplateDetails
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | attribute template ID |
description | string | false | none | Attribute template description |
type | string | true | none | attribute template type |
range | Range | false | none | none |
AttributeTemplateGroupDetails
{
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
description | string | false | none | none |
attributeTemplateDetails | [AttributeTemplateDetails] | false | none | none |
AttributeTemplateGroupSummary
{
"id": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
description | string | false | none | none |
BackupData
{
"vaultId": "string",
"backupData": "string",
"bipLevel": 0,
"cpar": "string",
"parentFingerprint": "string",
"childNumber": 0,
"publicKey": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vaultId | string | true | none | the vault ID |
backupData | string | true | none | The backup data, in encrypted form |
bipLevel | integer(int32) | true | none | derivation level |
cpar | string | true | none | CPar |
parentFingerprint | string | true | none | parent fingerprint |
childNumber | integer(int32) | true | none | child number |
publicKey | string | false | none | none |
Bip44AccountIndex
{
"index": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
index | integer(int32) | true | none | The account index |
Bip44AccountResponse
{
"publicKeys": [
"string"
],
"chains": [
"string"
],
"accountName": "string",
"accountIndex": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicKeys | [string] | true | none | the public keys |
chains | [string] | true | none | chains |
accountName | string | false | none | the account's name |
accountIndex | integer(int32) | true | none | the account's index |
Bip44AccountsResponse
{
"name": "string",
"index": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | an optional account name |
index | integer(int32) | true | none | the account's index |
BipPublicNode
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
chainCode | string | false | none | none |
publicKey | string | false | none | none |
level | integer(int32) | false | none | none |
parentFingerprint | string | false | none | none |
childNumber | integer(int32) | false | none | none |
CASPErrorResponse
{
"type": "string",
"title": "string",
"details": "string",
"status": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | true | none | Error identification |
title | string | true | none | Error summary |
details | string | true | none | Error details |
status | integer(int32) | true | none | Original HTTP status code |
CalculatePublicKeyOperationDetails
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"totsParams": [
{
"index": 0,
"numberOfFragments": 0
}
],
"publicKeys": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
groups | [ApprovalGroupDetails] | true | none | Operation approval groups |
policyDetails | PolicyDetails | false | none | none |
vaultName | string | true | none | Item name for the operation |
totsParams | [IndexNofPairResponse] | true | none | List of index/NOF pairs |
publicKeys | [string] | true | none | List of public keys |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
CalculatePublicKeyRequest
{
"description": "string",
"totsParams": [
{
"index": 0,
"numberOfFragments": 1
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | Description. |
totsParams | [IndexNofPairRequest] | false | none | Index and NOF pairs |
ChangeUserPasswordRequest
{
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | string | true | none | User's password |
CollectedData
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
dataCollectorDetails | DataCollectorDetails | false | none | none |
data | object | false | none | none |
» additionalProperties | string | false | none | none |
collectionDone | boolean | false | none | none |
signedUniqueData | string | false | none | none |
collectionStart | integer(int64) | false | none | none |
collectionEnd | integer(int64) | false | none | none |
CollectedDataGroupsDetails
{
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
collectionComplete | boolean | false | none | none |
dataCollectionGroups | [DataCollectionGroup] | false | none | none |
CreateAccountRequest
{
"name": "string",
"isGlobal": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Account name |
isGlobal | boolean | false | none | Is account global |
CreateApiKeyRequest
{
"client_id": "string",
"client_role": "Super_User",
"scope": "string",
"grant_type": "client_credentials",
"password": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
client_id | string | true | none | Owner client ID auth token will be issued for |
client_role | string | true | none | Auth token owner role. |
scope | string | true | none | Auth token scope. Value MUST be set to "/mng" |
grant_type | string | true | none | Request's grant type |
password | string | true | none | Auth token owner password |
Enumerated Values
Property | Value |
---|---|
client_role | Super_User |
client_role | Security_Officer |
client_role | Trader |
grant_type | client_credentials |
CreateAttributeTemplateGroupRequest
{
"id": "string",
"attributeTemplates": [
"string"
],
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
attributeTemplates | [string] | false | none | none |
description | string | false | none | none |
CreateAttributeTemplateRequest
{
"id": "string",
"description": "string",
"type": "STRING",
"range": {
"min": "string",
"max": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Vault attribute ID |
description | string | false | none | Vault attribute description |
type | string | true | none | Vault attribute Type |
range | Range | false | none | none |
Enumerated Values
Property | Value |
---|---|
type | STRING |
type | NUMERIC |
type | BOOLEAN |
type | DATE |
CreateBip44AddressResponse
{
"publicKey": "string",
"derivationString": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicKey | string | true | none | The public key of the new address |
derivationString | string | true | none | The derivation string of the new address |
CreateDataCollectorRequest
{
"name": "string",
"attributeTemplateGroupId": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
attributeTemplateGroupId | string | false | none | none |
description | string | false | none | none |
CreateParticipantRequest
{
"name": "string",
"email": "string",
"role": "string",
"offline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Participant name |
string | true | none | Participant email | |
role | string | false | none | Participant role |
offline | boolean | false | none | An offline participant |
CreateUserRequest
{
"name": "string",
"loginName": "string",
"password": "string",
"role": "Super_User",
"enable2fa": true,
"authType": "OIDC",
"accountId": "string",
"email": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | User's name |
loginName | string | true | none | User's login name |
password | string | false | none | User's password. Not needed when using using OAuth type 'OIDC' |
role | string | true | none | User's role |
enable2fa | boolean | false | none | Is 2FA enabled for this user |
authType | string | false | none | Oauth type |
accountId | string | false | none | User's account id. Needed only when creating a participant |
string | false | none | User's email. needed only when creating a participant |
Enumerated Values
Property | Value |
---|---|
role | Super_User |
role | Security_Officer |
role | Trader |
authType | OIDC |
authType | OAUTH |
CreateVaultDataResponse
{
"id": "string",
"name": "string",
"description": "string",
"accountID": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Vault ID |
name | string | true | none | Vault name |
description | string | true | none | Vault description |
accountID | string | true | none | Vault account ID |
CreateVaultRequest
{
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"curveName": "Ed25519",
"providerKind": "string",
"hierarchy": "NONE",
"coinType": 0,
"firstAccountName": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"policies": [
{
"name": "string",
"description": "string",
"enabled": true,
"isOffline": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"policyKind": "APPROVAL"
}
],
"isOffline": true,
"attributes": {
"property1": "string",
"property2": "string"
},
"dataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Vault name |
description | string | false | none | vault description |
cryptoKind | string | true | none | Type of cryptographic algorithm |
curveName | string | false | none | The name of the curve |
providerKind | string | false | none | Type of crypto currency |
hierarchy | string | false | none | Vault hierarchy. defaults to deterministic |
coinType | integer(int32) | false | none | BIP44 coin type. see examples of known coin types in https://github.com/satoshilabs/slips/blob/master/slip-0044.md |
firstAccountName | string | false | none | The name of the first account |
groups | [ApprovalGroup] | true | none | Vault approval groups |
policies | [WithdrawalPolicy] | false | none | policies set |
isOffline | boolean | false | none | Offline/Online type of the vault |
attributes | object | false | none | Vault attributes |
» additionalProperties | string | false | none | none |
dataCollectorsGroups | [DataCollectorsGroupDetails] | false | none | Vault data collector groups |
incomingTransactionVault | boolean | false | none | Is the vault used for singing incoming transactions |
incomingTransactionVaultId | string | false | none | vault ID which would be used for singing incoming transactions |
Enumerated Values
Property | Value |
---|---|
cryptoKind | ECDSA |
cryptoKind | EDDSA |
cryptoKind | TOTS |
curveName | Ed25519 |
curveName | secp256r1 |
curveName | secp256k1 |
hierarchy | NONE |
hierarchy | BIP32 |
hierarchy | BIP44 |
DBEntity
{
"healthy": true,
"errorMessage": "string",
"version": "string",
"schemaVersion": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
healthy | boolean | true | none | Is entity healthy |
errorMessage | string | false | none | Error message in case entity is not healthy |
version | string | false | none | Entity version |
schemaVersion | string | false | none | CASP schema version |
DataCollectionGroup
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
minimumRequired | integer(int32) | false | none | none |
collectedData | [CollectedData] | false | none | none |
name | string | false | none | none |
DataCollectorDetails
{
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
state | string | false | none | none |
description | string | false | none | none |
creationTime | string | false | none | none |
modificationTime | string | false | none | none |
authenticationKey | string | false | none | none |
attributeTemplateGroup | AttributeTemplateGroupDetails | false | none | none |
activationCode | string | false | none | none |
DataCollectorSummary
{
"id": "string",
"name": "string",
"attributeTemplateGroupId": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
name | string | false | none | none |
attributeTemplateGroupId | string | false | none | none |
state | string | false | none | none |
description | string | false | none | none |
creationTime | string | false | none | none |
modificationTime | string | false | none | none |
DataCollectorsGroupDetails
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Data Collectors group name |
attributeTemplateGroup | string | true | none | Data collectors group`s attribute template group name |
ids | [string] | true | none | Data Collectors IDs |
minimumRequired | integer(int32) | true | none | Data Collectors required for Sign request proceeding |
DecliningParticipantDetails
{
"participantId": "string",
"participantName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
participantId | string | true | none | Sign operation declining participant ID |
participantName | string | false | none | none |
DeriveBip32KeypairRequest
{
"pathToDeriveFrom": "string",
"hardDerivation": true,
"childIndex": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
pathToDeriveFrom | string | true | none | The derivation path to derive from |
hardDerivation | boolean | true | none | Use hard derivation |
childIndex | integer(int32) | true | none | The child index |
DerivedWhiteList
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
chainCode | string | false | none | none |
publicKey | string | false | none | none |
level | integer(int32) | true | none | none |
parentFingerprint | string | false | none | none |
childNumber | integer(int32) | true | none | none |
EditTrustedInstaceRequest
{
"instanceId": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
instanceId | string | true | none | Instance ID |
description | string | false | none | Instance description |
Entity
{
"healthy": true,
"errorMessage": "string",
"version": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
healthy | boolean | true | none | Is entity healthy |
errorMessage | string | false | none | Error message in case entity is not healthy |
version | string | false | none | Entity version |
ExportedEntity
{
"instanceId": "string",
"type": "string",
"data": "string",
"signature": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
instanceId | string | false | none | none |
type | string | false | none | none |
data | string | false | none | none |
signature | string | false | none | none |
GetBip32KeyResponse
{
"derivationPath": "string",
"publicKey": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
derivationPath | string | true | none | the public derivation path |
publicKey | string | true | none | the public key |
GetBip44AccountByIdentifierResponse
{
"accountName": "string",
"accountIndex": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accountName | string | false | none | the account's name |
accountIndex | integer(int32) | true | none | the account's index |
Idp
{
"name": "string",
"description": "string",
"url": "string",
"clientId": "string",
"usedClaims": [
"string"
],
"requiredScopes": [
"string"
],
"tokenEndpoint": "string",
"authorizationEndpoint": "string",
"userinfoEndpoint": "string",
"jwksUri": "string",
"supportedClaims": [
"string"
],
"supportedScopes": [
"string"
],
"supportedResponseTypes": [
"string"
],
"supportedGrantTypes": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
description | string | false | none | none |
url | string | false | none | none |
clientId | string | false | none | none |
usedClaims | [string] | false | none | none |
requiredScopes | [string] | false | none | none |
tokenEndpoint | string | false | none | none |
authorizationEndpoint | string | false | none | none |
userinfoEndpoint | string | false | none | none |
jwksUri | string | false | none | none |
supportedClaims | [string] | false | none | none |
supportedScopes | [string] | false | none | none |
supportedResponseTypes | [string] | false | none | none |
supportedGrantTypes | [string] | false | none | none |
IncomingTransactionSignRequest
{
"callbackUrl": "string",
"ledger": "string",
"rawTransactions": [
"string"
],
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
callbackUrl | string | false | none | Callback URL |
ledger | string | false | none | Ledger |
rawTransactions | [string] | true | none | Raw transactions |
description | string | true | none | description |
IndexNofPairRequest
{
"index": 0,
"numberOfFragments": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
index | integer(int32) | true | none | Index |
numberOfFragments | integer(int32) | true | none | Number of fragments |
Enumerated Values
Property | Value |
---|---|
numberOfFragments | 1 |
numberOfFragments | 2 |
numberOfFragments | 3 |
IndexNofPairResponse
{
"index": 0,
"numberOfFragments": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
index | integer(int32) | true | none | Index |
numberOfFragments | integer(int32) | true | none | Number of fragments |
JoinPolicyVaultOperationDetails
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"policies": [
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
}
}
],
"vaultName": "string",
"groupNameToJoin": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
policies | [JoinPolicyVaultWithdrawalPolicy] | true | none | Policies |
vaultName | string | true | none | Vault name for the operation |
groupNameToJoin | string | true | none | Group to join |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
JoinPolicyVaultWithdrawalPolicy
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | policy name |
id | string | true | none | policy id |
description | string | false | none | Policy description |
enabled | boolean | false | none | is the policy enabled, default is TRUE |
timeZone | string | false | none | Policy time zone |
groups | [ApprovalGroupDetails] | true | none | Approval groups |
rules | Rules | false | none | none |
KeySpecResponse
{
"indexNofPairs": [
{
"index": 0,
"numberOfFragments": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
indexNofPairs | [IndexNofPairResponse] | false | none | none |
KeySpecsRequest
{
"totsParams": [
{
"index": 0,
"numberOfFragments": 1
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totsParams | [IndexNofPairRequest] | false | none | none |
ListAccountsResponse
{
"totalItems": 0,
"items": [
{
"id": "string",
"name": "string",
"isGlobal": true,
"isDeletable": true,
"creationTime": "string",
"stats": {
"participants": {
"total": 0,
"inactive": 0
},
"operations": {
"total": 0,
"pending": 0
},
"vaults": {
"total": 0,
"inactive": 0,
"pending": 0
}
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [AccountDetails] | true | none | Items |
ListAttributeTemplateGroupsSummaries
{
"totalItems": 0,
"items": [
{
"id": "string",
"description": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | false | none | none |
items | [AttributeTemplateGroupSummary] | false | none | none |
ListAttributeTemplatesResponse
{
"totalItems": 0,
"items": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [AttributeTemplateDetails] | true | none | Items |
ListDataCollectorSummaries
{
"items": [
{
"id": "string",
"name": "string",
"attributeTemplateGroupId": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string"
}
],
"totalItems": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [DataCollectorSummary] | false | none | none |
totalItems | integer(int32) | false | none | none |
ListResponseBip32Keys
{
"totalItems": 0,
"items": [
{
"derivationPath": "string",
"publicKey": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [GetBip32KeyResponse] | true | none | Items |
ListResponseBip44Accounts
{
"totalItems": 0,
"items": [
{
"name": "string",
"index": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [Bip44AccountsResponse] | true | none | Items |
ListResponseBip44ChainAddresses
{
"totalItems": 0,
"items": [
"string"
],
"chains": [
"string"
],
"accountName": "string",
"accountIndex": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [string] | true | none | Public key items |
chains | [string] | true | none | chains |
accountName | string | false | none | the account's name |
accountIndex | integer(int32) | true | none | the account's index |
ListResponseBip44Coins
{
"totalItems": 0,
"items": [
0
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [integer] | true | none | Items |
ListResponseOperations
{
"totalItems": 0,
"items": [
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"vaultName": "string",
"providerKind": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [OperationViewInfo] | true | none | Items |
ListResponseOperationsInfo
{
"totalItems": 0,
"items": [
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [OperationInfo] | true | none | Items |
ListResponseParticipants
{
"totalItems": 0,
"items": [
{
"id": "string",
"accountID": "string",
"name": "string",
"email": "string",
"status": "NOT_ACTIVATED",
"isActive": true,
"accountName": "string",
"role": "string",
"pushEnabled": true,
"offline": true,
"activeOperations": 0,
"deviceType": "IOS",
"creationTime": "string",
"modificationTime": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [ParticipantDetails] | true | none | Items |
ListResponseVaults
{
"totalItems": 0,
"items": [
{
"id": "string",
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"providerKind": "string",
"isActive": true,
"status": "NOT_INITIALIZED",
"statusText": "Waiting for participants to join",
"providerData": "string",
"pendingOperations": 0,
"hierarchy": "NONE",
"isDeletable": true,
"approvalStructure": "QUORUM",
"creationTime": "string",
"modificationTime": "string",
"offline": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [VaultInfo] | true | none | Items |
OAuthTokenRequest
{
"grant_type": "password",
"username": "string",
"code": "string",
"redirect_uri": "string",
"client_id": "string",
"password": "string",
"refresh_token": "string",
"id_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
grant_type | string | true | none | Request's grant type |
username | string | false | none | none |
code | string | false | none | used for OIDC |
redirect_uri | string | false | none | used for OIDC |
client_id | string | false | none | none |
password | string | false | none | password |
refresh_token | string | false | none | refresh token |
id_token | string | false | none | used for OIDC |
Enumerated Values
Property | Value |
---|---|
grant_type | password |
grant_type | id_token |
grant_type | authorization_code |
grant_type | refresh_token |
OauthTokenResponse
{
"access_token": "string",
"token_type": "string",
"expires_in": 0,
"scope": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | true | none | Oauth Token for CASP service |
token_type | string | false | none | Oauth Token type |
expires_in | integer(int64) | false | none | Expiration in seconds |
scope | string | false | none | Oauth token scope |
OauthTokenWithRefreshResponse
{
"access_token": "string",
"token_type": "string",
"expires_in": 0,
"scope": "string",
"refresh_token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
access_token | string | true | none | Oauth Token for CASP service |
token_type | string | false | none | Oauth Token type |
expires_in | integer(int64) | false | none | Expiration in seconds |
scope | string | false | none | Oauth token scope |
refresh_token | string | true | none | Oauth Token for CASP service |
OfflineParticipantsOperationsResponse
{
"data": "string",
"tag": "string",
"iv": "string",
"key": "string",
"participantId": "string",
"sig": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
data | string | true | none | Participant ID |
tag | string | false | none | none |
iv | string | false | none | none |
key | string | false | none | none |
participantId | string | false | none | none |
sig | string | true | none | Participant ID |
OperationDetails
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
groups | [ApprovalGroupDetails] | true | none | Operation approval groups |
policyDetails | PolicyDetails | false | none | none |
vaultName | string | true | none | Item name for the operation |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
OperationInfo
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
OperationResponse
{
"operationID": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
OperationViewInfo
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"vaultName": "string",
"providerKind": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
vaultName | string | true | none | Vault Name |
providerKind | string | false | none | Provider Kind |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
Operations
{
"total": 0,
"pending": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total | integer(int32) | true | none | The number of operations from the account |
pending | integer(int32) | true | none | The number of operations that are still pending |
ParticipantDetails
{
"id": "string",
"accountID": "string",
"name": "string",
"email": "string",
"status": "NOT_ACTIVATED",
"isActive": true,
"accountName": "string",
"role": "string",
"pushEnabled": true,
"offline": true,
"activeOperations": 0,
"deviceType": "IOS",
"creationTime": "string",
"modificationTime": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Participant ID |
accountID | string | true | none | Participant account ID |
name | string | true | none | Participant name |
string | true | none | Participant email | |
status | string | true | none | Participant status |
isActive | boolean | true | none | Participant activation state |
accountName | string | true | none | Participant account name |
role | string | false | none | Participant role |
pushEnabled | boolean | true | none | Is the push notifications enabled for this participant |
offline | boolean | true | none | Participant is offline |
activeOperations | integer(int64) | true | none | Participant is offline |
deviceType | string | false | none | Participant device type |
creationTime | string | true | none | Participant creation time |
modificationTime | string | true | none | Participant last modification time |
Enumerated Values
Property | Value |
---|---|
status | NOT_ACTIVATED |
status | ACTIVATED |
status | REACTIVATING |
status | SUSPENDED |
status | REVOKED |
deviceType | IOS |
deviceType | ANDROID |
deviceType | BOT |
ParticipantGroupResponse
{
"vaultId": "string",
"vaultName": "string",
"type": "string",
"policy": "string",
"policyId": "string",
"name": "string",
"requiredApprovals": 0,
"totalMembersCount": 0,
"activeMembersCount": 0,
"status": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vaultId | string | true | none | Vault ID |
vaultName | string | true | none | Vault name |
type | string | true | none | Group type |
policy | string | false | none | Policy name |
policyId | string | false | none | Policy Id |
name | string | true | none | Group name |
requiredApprovals | integer(int32) | true | none | Number of group required approvals |
totalMembersCount | integer(int32) | true | none | Number of group participants |
activeMembersCount | integer(int32) | true | none | Number of active participants in group |
status | string | false | none | Participant status on group (only for suspended and revoked statuses) |
ParticipantInfo
{
"id": "string",
"name": "string",
"email": "string",
"role": "string",
"accountID": "string",
"accountName": "string",
"status": "NOT_ACTIVATED",
"loginName": "string",
"responseSignKey": "string",
"creationTime": "string",
"modificationTime": "string",
"lastLoginTime": "string",
"approver": true,
"admin": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Participant ID |
name | string | true | none | Participant name |
string | true | none | Participant email | |
role | string | true | none | Participant role |
accountID | string | true | none | Participant account ID |
accountName | string | true | none | Participant account alias |
status | string | true | none | Participant status |
loginName | string | false | none | User login name |
responseSignKey | string | true | none | Transaction sign key for transaction verifications |
creationTime | string | true | none | Participant creation time |
modificationTime | string | true | none | Participant last modification time |
lastLoginTime | string | false | none | User last login time |
approver | boolean | false | none | Participant has approver capabilities |
admin | boolean | false | none | Participant has authentication capabilities |
Enumerated Values
Property | Value |
---|---|
status | NOT_ACTIVATED |
status | ACTIVATED |
status | REACTIVATING |
status | SUSPENDED |
status | REVOKED |
ParticipantStatusChangeResponse
{
"id": "string",
"name": "string",
"status": "ACTIVATED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | ParticipantWithVault ID |
name | string | true | none | ParticipantWithVault name |
status | string | true | none | ParticipantWithVault task status |
approvalGroupAccount | ApprovalGroupAccount | true | none | none |
label | string | true | none | ParticipantWithVault label |
isGlobal | boolean | true | none | ParticipantWithVault global state |
isActive | boolean | true | none | none |
Enumerated Values
Property | Value |
---|---|
status | ACTIVATED |
status | SUSPENDED |
status | REVOKED |
Participants
{
"total": 0,
"inactive": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total | integer(int32) | true | none | Total number of participants in the account |
inactive | integer(int32) | true | none | Total number of inactive participants in the account |
PolicyDetails
{
"id": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Policy id |
name | string | true | none | Policy name |
PolicyUpdateDetails
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | policy name |
id | string | true | none | none |
description | string | false | none | Policy description |
enabled | boolean | false | none | is the policy enabled, default is TRUE |
timeZone | string | false | none | Policy time zone, default is UTC |
rules | Rules | false | none | none |
isOffline | boolean | false | none | Policy offline property |
Range
{
"min": "string",
"max": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
min | string | true | none | min value |
max | string | true | none | max value |
RegenerateActivationCodeRequest
{
"vaults": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vaults | [string] | false | none | List of vaultIds to trigger 'rejoin' operation |
RegenerateDataCollectorActivationCodeResponse
{
"activationCode": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
activationCode | string | false | none | none |
RejectionCauseDetailsResponse
{
"text": "string",
"reason": "string",
"decliningParticipant": {
"participantId": "string",
"participantName": "string"
},
"rejectedPolicy": {
"policyName": "string",
"policyId": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
text | string | false | none | none |
reason | string | false | none | none |
decliningParticipant | DecliningParticipantDetails | false | none | none |
rejectedPolicy | RejectionPolicyDetails | false | none | none |
RejectionPolicyDetails
{
"policyName": "string",
"policyId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
policyName | string | true | none | Sign operation rejection policy name |
policyId | string | false | none | none |
RejoinVaultErrorResponse
{
"vaultId": "string",
"vaultName": "string",
"error": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vaultId | string | true | none | Vault ID |
vaultName | string | true | none | Vault Name |
error | string | true | none | Rejoin error |
RestoreUserPasswordRequest
{
"password": "string",
"mustChangePassword": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
password | string | true | none | User's password |
mustChangePassword | boolean | false | none | User must change password. default value: true |
Rules
{
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
weeklyTimeSlots | [ValidTimeSlot] | false | none | none |
amountRange | object | false | none | none |
» additionalProperties | AmountRange | false | none | none |
whiteList | [string] | false | none | none |
derivedWhiteList | [BipPublicNode] | false | none | none |
attributes | [AttributeRuleDetailsResponse] | false | none | none |
SignAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"rawTransaction": [
"string"
],
"amount": 0,
"assetType": "string",
"toAddress": [
"string"
],
"isWhitelisted": true,
"whitelistAddress": "string",
"description": "string",
"policyName": "string",
"operationID": "string",
"dataToSign": "string",
"publicKey": "string",
"signature": "string",
"keySpec": "string",
"operationState": "string",
"rejectionReason": "string",
"policyID": "string",
"dataCollectorId": "string",
"collectedData": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
rawTransaction | [string] | false | none | none |
amount | integer | false | none | none |
assetType | string | false | none | none |
toAddress | [string] | false | none | none |
isWhitelisted | boolean | false | none | none |
whitelistAddress | string | false | none | none |
description | string | false | none | none |
policyName | string | false | none | none |
operationID | string | false | none | none |
dataToSign | string | false | none | none |
publicKey | string | false | none | none |
signature | string | false | none | none |
keySpec | string | false | none | none |
operationState | string | false | none | none |
rejectionReason | string | false | none | none |
policyID | string | false | none | none |
dataCollectorId | string | false | none | none |
collectedData | string | false | none | none |
SignMetadata
{
"operationID": "string",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"publicKeys": [
"string"
],
"dataToSign": [
"string"
],
"signatures": [
"string"
],
"v": [
0
],
"providerData": "string",
"details": "string",
"rawTransactions": [
"string"
],
"ledgerHashAlgorithm": "IGNORE",
"callbackUrl": "string",
"subAccount": 0,
"keySpecs": {
"indexNofPairs": [
{
"index": 0,
"numberOfFragments": 0
}
]
},
"rejectionCause": {
"text": "string",
"reason": "string",
"decliningParticipant": {
"participantId": "string",
"participantName": "string"
},
"rejectedPolicy": {
"policyName": "string",
"policyId": "string"
}
},
"collectedData": {
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"property1": "string",
"property2": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
groups | [ApprovalGroupDetails] | true | none | Operation approval groups |
policyDetails | PolicyDetails | false | none | none |
vaultName | string | true | none | Item name for the operation |
publicKeys | [string] | true | none | The public keys corresponding to the private keys that will sign the data |
dataToSign | [string] | true | none | List data to sign |
signatures | [string] | false | none | Signatures. Each signature is 64 bytes, with 32 bytes R and 32 bytes S (in big-endian order). |
v | [integer] | false | none | This parameter returns raw values 0 or 1, which can be used to recover the public key from the generated signature. |
providerData | string | false | none | This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed. |
details | string | false | none | This is a field that can be used to store operation information as a JSON string in the CASP database. The information can subsequently be sent to the end point for display. |
rawTransactions | [string] | false | none | An array of raw transaction strings that are sent to ledger. The strings must all have the same format, where the format of the strings depends on the ledger's hash algorithm: - For SHA3_256, it is a hex encoded string. - For DOUBLE_SHA256, it is a hex encoded string. - For SHA256, it is a hex encoded string. - For PLAIN, it is a base64 string. - For IGNORE do not compare. |
ledgerHashAlgorithm | string | false | none | Algorithm used to create data to sign |
callbackUrl | string | false | none | URL to get back to task initiator |
subAccount | integer(int32) | false | none | the sub account index |
keySpecs | KeySpecResponse | false | none | none |
rejectionCause | RejectionCauseDetailsResponse | false | none | none |
collectedData | CollectedDataGroupsDetails | false | none | none |
vaultAttributes | object | false | none | Vault`s attributes |
» additionalProperties | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
ledgerHashAlgorithm | IGNORE |
ledgerHashAlgorithm | PLAIN |
ledgerHashAlgorithm | SHA256 |
ledgerHashAlgorithm | DOUBLE_SHA256 |
ledgerHashAlgorithm | SHA3_256 |
SignOperationAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"userId": "string",
"userName": "string",
"operationApprovalAuditItems": "string",
"approvedByQuorum": "string",
"operationCanceled": "string",
"operationDeclines": "string",
"vaultId": "string",
"vaultName": "string",
"assetType": "string",
"rawTransaction": "string",
"amount": 0,
"toAddress": "string",
"whitelistAddress": "string",
"description": "string",
"policyName": "string",
"whitelisted": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
operationId | string | false | none | none |
userId | string | false | none | none |
userName | string | false | none | none |
operationApprovalAuditItems | string | false | none | none |
approvedByQuorum | string | false | none | none |
operationCanceled | string | false | none | none |
operationDeclines | string | false | none | none |
vaultId | string | false | none | none |
vaultName | string | false | none | none |
assetType | string | false | none | none |
rawTransaction | string | false | none | none |
amount | integer | false | none | none |
toAddress | string | false | none | none |
whitelistAddress | string | false | none | none |
description | string | false | none | none |
policyName | string | false | none | none |
whitelisted | boolean | false | none | none |
SignRequest
{
"keySpecs": {
"totsParams": [
{
"index": 0,
"numberOfFragments": 1
}
]
},
"dataToSign": [
"string"
],
"publicKeys": [
"string"
],
"derivationStrings": [
"string"
],
"description": "string",
"providerData": "string",
"details": "string",
"callbackUrl": "string",
"allowConcurrentKeyUsage": true,
"rawTransactions": [
"string"
],
"ledgerHashAlgorithm": "PLAIN",
"changeAddressDerivationString": "string",
"decimals": [
0
],
"ledger": "string",
"derivedWhitelistChildNumbers": [
0
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
keySpecs | KeySpecsRequest | false | none | none |
dataToSign | [string] | true | none | Data to be signed (as list of Hex strings). |
publicKeys | [string] | false | none | Public keys. Either publicKeys or derivationStrings must be provided. |
derivationStrings | [string] | false | none | The derivation paths to sign. Either publicKeys or derivationStrings must be provided. |
description | string | true | none | Description of the sign request |
providerData | string | false | none | This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed. |
details | string | false | none | This is a field that can be used to store operation information as a JSON string in the CASP database. The information can subsequently be sent to the end point for display. |
callbackUrl | string | false | none | URL to get back to task initiator |
allowConcurrentKeyUsage | boolean | false | none | Allow concurrent key usage. The default is false. false - allows only one ongoing sign operation per key. Any new incoming sign request that specifies a key already in involved in an active sign operation is rejected. true - allows starting multiple sign operations that specify the same key. Coordinating sign requests is something that app needs to handle. A single sign request can contain multiple hashes to sign. In a single sign request, a specific key can sign multiple hashes or multiple different keys can sign multiple hashes. |
rawTransactions | [string] | false | none | An array of raw transactions ledger in the specific ledger format (as list of Hex strings). |
ledgerHashAlgorithm | string | false | none | Algorithm used to calculate data to sign |
changeAddressDerivationString | string | false | none | the derivation string of the change address |
decimals | [integer] | false | none | Decimals of cryptocurrency units |
ledger | string | false | none | The ledger on which the transaction takes place |
derivedWhitelistChildNumbers | [integer] | false | none | A list of child numbers for a derived whitelist |
Enumerated Values
Property | Value |
---|---|
ledgerHashAlgorithm | PLAIN |
ledgerHashAlgorithm | SHA256 |
ledgerHashAlgorithm | DOUBLE_SHA256 |
ledgerHashAlgorithm | SHA3_256 |
ledgerHashAlgorithm | BTC_SEGWIT |
SignRequestRejectedErrorResponse
{
"type": "string",
"title": "string",
"details": "string",
"status": 0,
"rejectionCauseResponse": {
"text": "string",
"reason": "string",
"decliningParticipant": {
"participantId": "string",
"participantName": "string"
},
"rejectedPolicy": {
"policyName": "string",
"policyId": "string"
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | true | none | Error identification |
title | string | true | none | Error summary |
details | string | true | none | Error details |
status | integer(int32) | true | none | Original HTTP status code |
rejectionCauseResponse | RejectionCauseDetailsResponse | true | none | none |
SignsAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"rawTransaction": [
"string"
],
"amount": 0,
"assetType": "string",
"toAddress": [
"string"
],
"isWhitelisted": true,
"whitelistAddress": "string",
"description": "string",
"policyName": "string",
"operationID": "string",
"dataToSign": "string",
"publicKey": "string",
"signature": "string",
"keySpec": "string",
"operationState": "string",
"rejectionReason": "string",
"policyID": "string",
"dataCollectorId": "string",
"collectedData": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [SignAuditItem] | true | none | Items |
Stats
{
"participants": {
"total": 0,
"inactive": 0
},
"operations": {
"total": 0,
"pending": 0
},
"vaults": {
"total": 0,
"inactive": 0,
"pending": 0
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
participants | Participants | true | none | none |
operations | Operations | true | none | none |
vaults | Vaults | true | none | none |
SupportedLedgerResponse
{
"ledgerName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
ledgerName | string | true | none | The name of the ledger |
SystemDetails
{
"version": "string",
"instanceId": "string",
"ukc": {
"healthy": true,
"errorMessage": "string",
"version": "string"
},
"db": {
"healthy": true,
"errorMessage": "string",
"version": "string",
"schemaVersion": "string"
},
"nativeCrypto": {
"healthy": true,
"errorMessage": "string",
"version": "string"
},
"fcm": {
"healthy": true,
"errorMessage": "string",
"version": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
version | string | true | none | none |
instanceId | string | true | none | none |
ukc | Entity | true | none | none |
db | DBEntity | true | none | none |
nativeCrypto | Entity | true | none | none |
fcm | Entity | true | none | none |
TrustedInstanceInfoListResponse
{
"totalItems": 0,
"items": [
{
"instanceId": "string",
"encryptionKey": "string",
"signKey": "string",
"description": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total items |
items | [TrustedInstanceInfoResponse] | true | none | Trusted instances |
TrustedInstanceInfoResponse
{
"instanceId": "string",
"encryptionKey": "string",
"signKey": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
instanceId | string | true | none | the instance ID |
encryptionKey | string | true | none | The encryption key |
signKey | string | true | none | The signing key |
description | string | false | none | Instance description |
TrustedSystemsAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"operationKind": "string",
"operationStatus": "string",
"trustedInstanceId": "string",
"vaultId": "string",
"vaultName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
operationId | string | false | none | none |
operationKind | string | false | none | none |
operationStatus | string | false | none | none |
trustedInstanceId | string | false | none | none |
vaultId | string | false | none | none |
vaultName | string | false | none | none |
TrustedSystemsAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"operationKind": "string",
"operationStatus": "string",
"trustedInstanceId": "string",
"vaultId": "string",
"vaultName": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [TrustedSystemsAuditItem] | true | none | Items |
UkcVaultKey
{
"ukcKeyId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
ukcKeyId | string | true | none | The key UKC key ID |
UpdateAccountRequest
{
"name": "string",
"isGlobal": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Account name |
isGlobal | boolean | false | none | Is account global |
UpdateAttributeTemplateGroupRequest
{
"id": "string",
"attributeTemplates": [
"string"
],
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
attributeTemplates | [string] | false | none | none |
description | string | false | none | none |
UpdateAttributeTemplateRequest
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Vault attribute ID |
description | string | true | none | Vault attribute description |
type | string | true | none | Vault attribute type |
range | Range | true | none | none |
UpdateDataCollectorRequest
{
"name": "string",
"state": "NOT_ACTIVATED",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
state | string | true | none | none |
description | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
state | NOT_ACTIVATED |
state | ACTIVATED |
state | SUSPENDED |
state | REVOKED |
UpdateParticipantStatusRequest
{
"status": "DEACTIVATED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | true | none | ParticipantWithVault status in vault |
Enumerated Values
Property | Value |
---|---|
status | DEACTIVATED |
status | SUSPENDED |
status | REVOKED |
status | ACTIVATED |
UpdateParticipantStatusWithPolicyRequest
{
"status": "DEACTIVATED",
"policyId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | true | none | ParticipantWithVault status in vault |
policyId | string | false | none | The policy ID in which to change a participant's status. If none is specified, the participant's status will be changed in the admin quorum. |
Enumerated Values
Property | Value |
---|---|
status | DEACTIVATED |
status | SUSPENDED |
status | REVOKED |
status | ACTIVATED |
UpdateParticipateRequest
{
"name": "string",
"email": "string",
"role": "string",
"status": "ACTIVATED",
"deviceType": "IOS"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | ParticipantWithVault name |
string | false | none | ParticipantWithVault email | |
role | string | false | none | ParticipantWithVault role |
status | string | false | none | ParticipantWithVault status |
deviceType | string | false | none | Participant device type |
Enumerated Values
Property | Value |
---|---|
status | ACTIVATED |
status | DEACTIVATED |
status | SUSPENDED |
status | REVOKED |
deviceType | IOS |
deviceType | ANDROID |
deviceType | BOT |
UpdateUserRequest
{
"name": "string",
"loginName": "string",
"status": "ACTIVATED",
"role": "Super_User",
"email": "string",
"locked": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | new user name |
loginName | string | false | none | new user login name |
status | string | false | none | User status |
role | string | false | none | User's role |
string | false | none | none | |
locked | boolean | false | none | Is user locked |
Enumerated Values
Property | Value |
---|---|
status | ACTIVATED |
status | SUSPENDED |
status | REVOKED |
role | Super_User |
role | Security_Officer |
role | Trader |
UpdateVaultAttributesOperationDetails
{
"operationID": "string",
"kind": "JOIN_VAULT",
"status": "PENDING",
"statusText": "Pending",
"createdAt": "string",
"vaultID": "string",
"description": "string",
"isApproved": true,
"accountID": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"policyDetails": {
"id": "string",
"name": "string"
},
"vaultName": "string",
"newVaultAttributes": {
"property1": "string",
"property2": "string"
},
"oldVaultAttributes": {
"property1": "string",
"property2": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
operationID | string | true | none | Operation ID |
kind | string | true | none | Operation kind |
status | string | true | none | Operation status. The status field has the following possible values: - PENDING - waiting for participant approval. - PENDING_ACTIVATION - used for rejoining a quorum vault operation. - WAITING_DATA_COLLECTION - waiting for data collector data. The sign operation finishes with one of these status values: - CANCELED - user canceled the operation. - FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes. - ERROR - the CASP server encountered an internal error. - COMPLETED - When working without built-in Wallet - enough participants approved and CASP has the signature. - When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger. - REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies. |
statusText | string | true | none | Operation status text |
createdAt | string | true | none | Operation creation time |
vaultID | string | true | none | Vault ID |
description | string | false | none | Description of the operation |
isApproved | boolean | true | none | Approval state for the operation |
accountID | string | true | none | Account ID for the operation |
groups | [ApprovalGroupDetails] | true | none | Operation approval groups |
policyDetails | PolicyDetails | false | none | none |
vaultName | string | true | none | Item name for the operation |
newVaultAttributes | object | true | none | new vault attributes |
» additionalProperties | string | false | none | none |
oldVaultAttributes | object | true | none | old vault attributes |
» additionalProperties | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
kind | JOIN_VAULT |
kind | REJOIN_VAULT |
kind | JOIN_VAULT_ADMIN_QUORUM |
kind | JOIN_POLICY_VAULT |
kind | ADD_MEMBER |
kind | ADMIN_QUORUM_APPROVAL |
kind | QUORUM_SIGN |
kind | CALCULATE_PUBLIC_KEY |
kind | UPDATE_VAULT_ATTRIBUTES |
kind | ERROR |
status | PENDING |
status | WAITING_DATA_COLLECTION |
status | PENDING_ACTIVATION |
status | APPROVED |
status | COMPLETED |
status | REJECTED |
status | CANCELED |
status | FAILED |
status | ERROR |
statusText | Pending |
statusText | Pending activation |
statusText | Approved |
statusText | Completed |
statusText | Rejected |
statusText | Canceled |
statusText | Failed |
statusText | N/A |
UpdateVaultAttributesRequest
{
"newVaultAttributes": {
"property1": "string",
"property2": "string"
},
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
newVaultAttributes | object | false | none | none |
» additionalProperties | string | false | none | none |
description | string | false | none | none |
UpdateVaultDataCollectorsGroupsRequest
{
"newDataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
newDataCollectorsGroups | [DataCollectorsGroupDetails] | true | none | Vault data collectors groups |
description | string | false | none | none |
UpdateVaultRequest
{
"name": "string",
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Vault name |
description | string | false | none | vault description |
UserAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"vaultId": "string",
"vaultName": "string",
"userId": "string",
"userName": "string",
"userRole": "string",
"userEmail": "string",
"userStatus": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
vaultId | string | false | none | none |
vaultName | string | false | none | none |
userId | string | false | none | none |
userName | string | false | none | none |
userRole | string | false | none | none |
userEmail | string | false | none | none |
userStatus | string | false | none | none |
UserInfoResponse
{
"id": "string",
"name": "string",
"loginName": "string",
"status": "string",
"role": "string",
"enable2fa": true,
"activationCode": "string",
"email": "string",
"locked": true,
"pushEnabled": true,
"deviceType": "string",
"creationTime": "string",
"modificationTime": "string",
"lastLoginTime": "string",
"authType": "OIDC"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | User ID |
name | string | false | none | User name |
loginName | string | true | none | User login name |
status | string | true | none | User status |
role | string | true | none | User role |
enable2fa | boolean | true | none | Is 2FA enabled |
activationCode | string | false | none | User activation code for 2FA |
string | false | none | User's email | |
locked | boolean | true | none | Is user locked |
pushEnabled | boolean | true | none | User has push notifications enabled |
deviceType | string | false | none | User/Participant device type |
creationTime | string | true | none | User creation time |
modificationTime | string | true | none | User last modification time |
lastLoginTime | string | false | none | User last login time |
authType | string | true | none | Authentication type |
Enumerated Values
Property | Value |
---|---|
authType | OIDC |
authType | OAUTH |
UsersAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"vaultId": "string",
"vaultName": "string",
"userId": "string",
"userName": "string",
"userRole": "string",
"userEmail": "string",
"userStatus": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [UserAuditItem] | true | none | Items |
ValidTimeSlot
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
days | string | true | none | Days of the week in comma separated list. e.g. 0,1,3 for Sunday, Monday and Wednesday |
timeStart | string | true | none | UTC time of day in the following format: HH:MM |
timeEnd | string | true | none | UTC time of day in the following format: HH:MM |
VaultApprovalGroup
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true,
"sparePartiesLeft": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Approval group name |
members | [ApprovalGroupParticipant] | true | none | A list of participants in the group |
requiredApprovals | integer(int32) | true | none | The number of group participants that need to give approval |
order | integer(int32) | true | none | This field determines the order in which groups are prompted for approvals |
deactivateAllowed | boolean | true | none | A group participant can be suspended or revoked from this group |
isOffline | boolean | true | none | Group is offline - conclude only offline participants |
sparePartiesLeft | integer(int32) | true | none | Count Spare Parties left By Group Name |
VaultAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"vaultId": "string",
"vaultName": "string",
"userId": "string",
"userName": "string",
"operationKind": "string",
"adminQuorum": "string",
"policies": "string",
"derivationString": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
operationId | string | false | none | none |
vaultId | string | false | none | none |
vaultName | string | false | none | none |
userId | string | false | none | none |
userName | string | false | none | none |
operationKind | string | false | none | none |
adminQuorum | string | false | none | none |
policies | string | false | none | none |
derivationString | string | false | none | none |
VaultBackupData
{
"vaultID": "string",
"backupData": "string",
"publicKey": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
vaultID | string | true | none | Vault ID |
backupData | string | true | none | Vault backup data |
publicKey | string | true | none | Vault public key |
VaultDetails
{
"description": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true,
"sparePartiesLeft": 0
}
],
"id": "string",
"name": "string",
"accountID": "string",
"status": "NOT_INITIALIZED",
"statusText": "Waiting for participants to join",
"isActive": true,
"cryptoKind": "ECDSA",
"curveName": "string",
"providerKind": "string",
"providerData": "string",
"hierarchy": "string",
"policies": [
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true,
"policyKind": "APPROVAL"
}
],
"isOffline": true,
"approvalStructure": "QUORUM",
"attributes": {
"property1": "string",
"property2": "string"
},
"dataCollectorsGroups": [
{
"name": "string",
"attributeTemplateGroup": "string",
"ids": [
"string"
],
"minimumRequired": 1
}
],
"creationTime": "string",
"modificationTime": "string",
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | false | none | Vault description |
groups | [VaultApprovalGroup] | true | none | Vault approval groups |
id | string | true | none | Vault ID |
name | string | true | none | Vault name |
accountID | string | true | none | Vault account ID |
status | string | true | none | Vault textual status |
statusText | string | true | none | Vault textual status |
isActive | boolean | true | none | Vault active state |
cryptoKind | string | false | none | Type of cryptographic algorithm |
curveName | string | true | none | Vault's curve |
providerKind | string | false | none | Coin type that created the vault |
providerData | string | false | none | This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed. |
hierarchy | string | true | none | Vault hierarchy |
policies | [WithdrawalPolicyDetails] | false | none | Vault policies |
isOffline | boolean | false | none | is offline/online vault property |
approvalStructure | string | true | none | Is Vault approval structure |
attributes | object | false | none | Vault's attributes |
» additionalProperties | string | false | none | none |
dataCollectorsGroups | [DataCollectorsGroupDetails] | false | none | Vault data collectors groups |
creationTime | string | true | none | Vault creation time |
modificationTime | string | true | none | Vault last modification time |
incomingTransactionVault | boolean | false | none | Is vault used for incoming transaction approval |
incomingTransactionVaultId | string | false | none | vault ID that would be used for incoming transaction approval |
Enumerated Values
Property | Value |
---|---|
status | NOT_INITIALIZED |
status | INITIALIZED |
status | DEACTIVATED |
statusText | Waiting for participants to join |
statusText | Ready |
statusText | Deactivated |
statusText | N/A |
cryptoKind | ECDSA |
cryptoKind | EDDSA |
approvalStructure | QUORUM |
approvalStructure | POLICY |
approvalStructure | STAKING_POLICIES |
VaultInfo
{
"id": "string",
"name": "string",
"description": "string",
"cryptoKind": "ECDSA",
"providerKind": "string",
"isActive": true,
"status": "NOT_INITIALIZED",
"statusText": "Waiting for participants to join",
"providerData": "string",
"pendingOperations": 0,
"hierarchy": "NONE",
"isDeletable": true,
"approvalStructure": "QUORUM",
"creationTime": "string",
"modificationTime": "string",
"offline": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Vault ID |
name | string | true | none | Vault name |
description | string | false | none | Vault description |
cryptoKind | string | false | none | Type of cryptographic algorithm |
providerKind | string | false | none | Coin type that created the vault |
isActive | boolean | true | none | Vault active state |
status | string | true | none | Vault status |
statusText | string | true | none | Vault status text |
providerData | string | true | none | This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed. |
pendingOperations | integer(int64) | true | none | Vault pending requests |
hierarchy | string | false | none | Vault status text |
isDeletable | boolean | true | none | Is Vault able to be deleted |
approvalStructure | string | true | none | Is Vault approval structure |
creationTime | string | true | none | Vault creation time |
modificationTime | string | true | none | Vault last modification time |
offline | boolean | true | none | Is Vault is offline |
Enumerated Values
Property | Value |
---|---|
cryptoKind | ECDSA |
cryptoKind | EDDSA |
status | NOT_INITIALIZED |
status | INITIALIZED |
status | DEACTIVATED |
statusText | Waiting for participants to join |
statusText | Ready |
statusText | Deactivated |
hierarchy | NONE |
hierarchy | BIP32 |
hierarchy | BIP44 |
approvalStructure | QUORUM |
approvalStructure | POLICY |
approvalStructure | STAKING_POLICIES |
VaultOperationAuditItem
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"userId": "string",
"userName": "string",
"operationApprovalAuditItems": "string",
"approvedByQuorum": "string",
"operationCanceled": "string",
"operationDeclines": "string",
"vaultId": "string",
"vaultName": "string",
"stakingPolicyID": "string",
"stakingPolicyMemberType": "string",
"operationKind": "string",
"adminQuorum": "string",
"policies": "string",
"derivationString": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
auditSeverity | string | false | none | none |
event | string | false | none | none |
initiatorId | string | false | none | none |
initiatorName | string | false | none | none |
timestamp | string | false | none | none |
duration | integer(int64) | false | none | none |
error | string | false | none | none |
details | string | false | none | none |
accountId | string | false | none | none |
accountName | string | false | none | none |
version | number | false | none | none |
participantId | string | false | none | none |
participantName | string | false | none | none |
operationId | string | false | none | none |
userId | string | false | none | none |
userName | string | false | none | none |
operationApprovalAuditItems | string | false | none | none |
approvedByQuorum | string | false | none | none |
operationCanceled | string | false | none | none |
operationDeclines | string | false | none | none |
vaultId | string | false | none | none |
vaultName | string | false | none | none |
stakingPolicyID | string | false | none | none |
stakingPolicyMemberType | string | false | none | none |
operationKind | string | false | none | none |
adminQuorum | string | false | none | none |
policies | string | false | none | none |
derivationString | string | false | none | none |
VaultPublicKeyResponse
{
"publicKey": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicKey | string | true | none | Vault's public key |
Vaults
{
"total": 0,
"inactive": 0,
"pending": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
total | integer(int32) | true | none | The number of vaults that belong to this account |
inactive | integer(int32) | true | none | The number of inactive vaults that belong to this account |
pending | integer(int32) | true | none | The number of pending for activation vaults that belong to this account |
VaultsAuditResponse
{
"totalItems": 0,
"items": [
{
"auditSeverity": "string",
"event": "string",
"initiatorId": "string",
"initiatorName": "string",
"timestamp": "string",
"duration": 0,
"error": "string",
"details": "string",
"accountId": "string",
"accountName": "string",
"version": 0,
"participantId": "string",
"participantName": "string",
"operationId": "string",
"vaultId": "string",
"vaultName": "string",
"userId": "string",
"userName": "string",
"operationKind": "string",
"adminQuorum": "string",
"policies": "string",
"derivationString": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalItems | integer(int32) | true | none | Total Items |
items | [VaultAuditItem] | true | none | Items |
WithdrawalPolicy
{
"name": "string",
"description": "string",
"enabled": true,
"isOffline": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"requiredApprovals": 1,
"members": [
{
"id": "string"
}
],
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"policyKind": "APPROVAL"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | policy name |
description | string | false | none | Policy description |
enabled | boolean | false | none | is the policy enabled, default is TRUE |
isOffline | boolean | false | none | Is policy offline, for offline vaults default is true, for online vaults default is false |
timeZone | string | false | none | Policy time zone, default is UTC |
groups | [ApprovalGroup] | false | none | none |
rules | Rules | false | none | none |
policyKind | string | true | none | Policy policyKind |
Enumerated Values
Property | Value |
---|---|
policyKind | APPROVAL |
policyKind | REJECTION |
WithdrawalPolicyDetails
{
"name": "string",
"id": "string",
"description": "string",
"enabled": true,
"timeZone": "string",
"groups": [
{
"name": "string",
"members": [
{
"approvedAt": "string",
"id": "string",
"isApproved": true,
"name": "string",
"status": "STARTED",
"approvalGroupAccount": {
"id": "string",
"name": "string"
},
"label": "string",
"isGlobal": true,
"isActive": true,
"globalStatus": "ACTIVATED",
"isOffline": true
}
],
"requiredApprovals": 0,
"order": 0,
"deactivateAllowed": true,
"isOffline": true
}
],
"rules": {
"weeklyTimeSlots": [
{
"days": "string",
"timeStart": "string",
"timeEnd": "string"
}
],
"amountRange": {
"property1": {
"minimum": 0,
"maximum": 0
},
"property2": {
"minimum": 0,
"maximum": 0
}
},
"whiteList": [
"string"
],
"derivedWhiteList": [
{
"chainCode": "string",
"publicKey": "string",
"level": 0,
"parentFingerprint": "string",
"childNumber": 0
}
],
"attributes": [
{
"id": "string",
"op": "string",
"value": "string"
}
]
},
"isOffline": true,
"policyKind": "APPROVAL"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | policy name |
id | string | true | none | policy id |
description | string | false | none | Policy description |
enabled | boolean | false | none | is the policy enabled, default is TRUE |
timeZone | string | false | none | Policy time zone |
groups | [ApprovalGroupDetails] | true | none | Approval groups |
rules | Rules | false | none | none |
isOffline | boolean | false | none | is policy offline, default is TRUE |
policyKind | string | false | none | Policy kind, can be APPROVAL or REJECTION |
Enumerated Values
Property | Value |
---|---|
policyKind | APPROVAL |
policyKind | REJECTION |
Authentication
- API Key (Bearer)
- Parameter Name: Authorization, in: header.