API Reference

Objects

Address

Represents the public key portion of the asymmetric key thats derived from the io.vault MPC TSS cryptography; It also contains balance information, making this query common for tracking balances.
Fields forAddress

Name Description
id (ID!) Unique ID used to identify an address within a vault. Note a vault can have multiple addresses.
createdAt (DateTime!) No description
publicKey (String!) The cryptographic public key of the address on a blockchain
explorerUri (String!) No description
asset (Asset!) The asset associated with the address
vault (Vault!) The vault associated with the address
balance (Decimal!) The balance of the address in non unit format (ex 21.1020)

Asset

Asset represents currencies secured by your io.vault. By default, the native assets for the supported networks such as BTC & ETH already exist; and assets that are more dynamic such as ERC20 or equivalent are dynamically added to the dataset once they are witnessed to be received by a vault.
Fields forAsset

Name Description
id (ID!) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
deletedAt (DateTime) No description
name (String!) No description
symbol (String!) No description
contractAddress (String!) No description
contractType (ContractType!) No description
explorerUri (String!) No description
executionType (String!) No description
logoUri (String!) No description
decimals (Int!) No description
rate (Decimal!) No description

Config

Global configuration is used to inform the UI and API users of dynamic variables.
Fields forConfig

Name Description
minimumThreshold (Int!) No description
maximumThreshold (Int!) No description

ConnectionPageInfo

No description
Fields forConnectionPageInfo

Name Description
startCursor (String!) No description
endCursor (String!) No description
hasNextPage (Boolean!) No description
hasPreviousPage (Boolean!) No description

Device

Represents a users device. Currently this can be either a mobile device or a virtual signer.
Fields forDevice

Name Description
id (ID!) Unique ID used to identify a mobile device or virtual signer. CUID Format.
uuid (String!) Unique device ID intended to be provided by the device OS.
createdAt (DateTime!) No description
deletedAt (DateTime) No description
name (String!) Model or name of the device intended to be provided by the device OS. For UX identification purposes.
organisationId (String!) Unique ID used to identify an organisation. CUID Format.
user (User!) User that owns the device
vaults (Vault!) Vaults where this device has been elected as a signer
publicKey (String!) Public key for secure device-to-device communications encryption
algorithm (EncryptionAlgorithm!) No description
type (DeviceType!) No description

DeviceTransactionRequestSigning

Represents a devices signing for a given transaction request
Fields forDeviceTransactionRequestSigning

Name Description
transactionRequest (TransactionRequest!) Transaction request that is being signed
device (Device!) Physical device to sign the transaction request
readyForSigning (Boolean!) No description
preSignData (String) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description

IndexerStatus

Sync status of a blockchain; lastSyncedHeight displays the most recently witnessed block height of the blockchain.
Fields forIndexerStatus

Name Description
id (ID!) No description
lastSyncedHeight (Int!) No description
metadata (JSON!) No description

NotificationItemConnection

No description
Fields forNotificationItemConnection

Name Description
edges (NotificationItemConnetionEdge!) No description
pageInfo (ConnectionPageInfo!) No description

NotificationItemConnetionEdge

No description
Fields forNotificationItemConnetionEdge

Name Description
cursor (String!) No description
node (NotificationItem!) No description

OperationAllowAddr

No description
Fields forOperationAllowAddr

Name Description
allowedAddressHash (String!) No description
allowedVaultAddress (Address) No description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
minedAt (DateTime) No description
status (OperationStatus!) Status of the transaction request
raw (String) No description
blockHeight (Int) No description
transactionHash (String) No description
explorerUri (String) No description
voting (VotingProgress!) No description
memo (String) Memo of the operation
fromVaultAddress (Address!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationBurn

No description
Fields forOperationBurn

Name Description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
minedAt (DateTime) No description
status (OperationStatus!) Status of the transaction request
amount (Decimal!) No description
raw (String) No description
fees (Decimal) Fees spent to execute the transaction in non unit format
blockHeight (Int) No description
transactionHash (String) No description
explorerUri (String) No description
voting (VotingProgress!) No description
memo (String) Memo of the operation
asset (Asset!) No description
fromVaultAddress (Address!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationConnection

No description
Fields forOperationConnection

Name Description
edges (OperationConnetionEdge!) No description
pageInfo (ConnectionPageInfo!) No description

OperationConnetionEdge

No description
Fields forOperationConnetionEdge

Name Description
cursor (String!) No description
node (Operation!) No description

OperationCreateVault

No description
Fields forOperationCreateVault

Name Description
signers (OperationSigner!) No description
threshold (Int!) No description
voting (VotingProgress!) No description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
expiresAt (DateTime) No description
status (OperationStatus!) Status of the reshare request
diff (ReshareDiff!) Changes done by this reshare
vault (Vault!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationDisableAddr

No description
Fields forOperationDisableAddr

Name Description
disabledAddressHash (String!) No description
disabledVaultAddress (Address) No description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
minedAt (DateTime) No description
status (OperationStatus!) Status of the transaction request
raw (String) No description
blockHeight (Int) No description
transactionHash (String) No description
explorerUri (String) No description
voting (VotingProgress!) No description
memo (String) Memo of the operation
fromVaultAddress (Address!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationMint

No description
Fields forOperationMint

Name Description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
minedAt (DateTime) No description
status (OperationStatus!) Status of the transaction request
amount (Decimal!) No description
raw (String) No description
fees (Decimal) Fees spent to execute the transaction in non unit format
blockHeight (Int) No description
transactionHash (String) No description
explorerUri (String) No description
voting (VotingProgress!) No description
memo (String) Memo of the operation
asset (Asset!) No description
fromVaultAddress (Address!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationReshare

No description
Fields forOperationReshare

Name Description
newSigners (OperationSigner!) No description
newThreshold (Int!) No description
previousSigners (OperationSigner!) No description
previousThreshold (Int!) No description
voting (VotingProgress!) No description
id (ID!) No description
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
expiresAt (DateTime) No description
status (OperationStatus!) Status of the reshare request
diff (ReshareDiff!) Changes done by this reshare
vault (Vault!) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

OperationSign

No description
Fields forOperationSign

Name Description
id (ID!) No description
organisationId (String!) Organisation id that item belongs to
status (OperationStatus!) Status of the sign request
createdAt (DateTime!) No description
createdBy (User!) User that submitted the operation
expiresAt (DateTime) No description
voting (VotingProgress!) No description
vault (Vault!) No description
errorCode (String) The code of the failure if the sign request failed
errorMessage (String) Error message which is user friendly about the failure if the sign request failed

OperationSigner

No description
Fields forOperationSigner

Name Description
weight (Int!) No description
device (Device!) No description

OperationTransferIn

No description
Fields forOperationTransferIn

Name Description
raw (String!) No description
transactionHash (String!) No description
explorerUri (String) No description
minedAt (DateTime!) No description
blockHeight (Int!) No description
fromAddressHash (String!) No description
fees (Decimal!) Fees spent to execute the transaction in non unit format
id (ID!) No description
createdAt (DateTime!) No description
status (OperationStatus!) Status of the transaction request
amount (Decimal!) No description
asset (Asset!) No description
errorCode (String) The code of the failure if the transaction request or transaction failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request or transaction failed
toVaultAddress (Address!) No description

OperationTransferOut

No description
Fields forOperationTransferOut

Name Description
raw (String) No description
transactionHash (String) No description
explorerUri (String) No description
minedAt (DateTime) No description
blockHeight (Int) No description
toAddressHash (String!) No description
voting (VotingProgress!) No description
fees (Decimal) Fees spent to execute the transaction in non unit format
id (ID!) No description
createdAt (DateTime!) No description
status (OperationStatus!) Status of the transaction request
amount (Decimal!) No description
asset (Asset!) No description
errorCode (String) The code of the failure if the transaction request or transaction failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request or transaction failed
expiresAt (DateTime!) No description
createdBy (User!) User that submitted the operation
memo (String) No description
fromVaultAddress (Address!) No description

OperationTransferOutIn

No description
Fields forOperationTransferOutIn

Name Description
raw (String) No description
transactionHash (String) No description
explorerUri (String) No description
minedAt (DateTime) No description
blockHeight (Int) No description
voting (VotingProgress!) No description
fees (Decimal) Fees spent to execute the transaction in non unit format
id (ID!) No description
createdAt (DateTime!) No description
status (OperationStatus!) Status of the transaction request
amount (Decimal!) No description
asset (Asset!) No description
errorCode (String) The code of the failure if the transaction request or transaction failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request or transaction failed
toVaultAddress (Address!) No description
expiresAt (DateTime!) No description
createdBy (User!) User that submitted the operation
memo (String) No description
fromVaultAddress (Address!) No description

ParsedContractInput

Represents a smart contract method call with its inputs
Fields forParsedContractInput

Name Description
methodId (String!) No description
methodName (String!) No description
inputs (ParsedContractInputInput) No description

ParsedContractInputInput

Contract inputs objects which contain the name, type and value of the input
Fields forParsedContractInputInput

Name Description
name (String!) No description
type (String!) No description
value (String!) No description

ParsedContractReceipt

No description
Fields forParsedContractReceipt

Name Description
events (ParsedContractReceiptEvent) No description
revertReason (String) No description

ParsedContractReceiptEvent

No description
Fields forParsedContractReceiptEvent

Name Description
name (String!) No description
fullParseSuccessful (Boolean!) No description
topics (ParsedContractReceiptTopic!) No description

ParsedContractReceiptTopic

No description
Fields forParsedContractReceiptTopic

Name Description
name (String!) No description
type (String!) No description
value (String!) No description

Profile

No description
Fields forProfile

Name Description
name (String) No description
firstName (String) No description
middleName (String) No description
lastName (String) No description
fullName (String) No description
initials (String) No description
userName (String) No description
email (String) No description
profilePictureUri (String) No description
role (UserRole!) No description
type (UserType!) No description

RequestConnection

No description
Fields forRequestConnection

Name Description
edges (RequestConnetionEdge!) No description
pageInfo (ConnectionPageInfo!) No description

RequestConnetionEdge

No description
Fields forRequestConnetionEdge

Name Description
cursor (String!) No description
node (Request!) No description

ReshareDiffDeviceAdded

Reshare request change of adding a new device
Fields forReshareDiffDeviceAdded

Name Description
device (Device!) The device that was added
weight (Int!) The weight of the device

ReshareDiffDevicePowerChanged

Reshare request to change a device's power
Fields forReshareDiffDevicePowerChanged

Name Description
device (Device!) Device
originalWeight (Int!) The original weight of the device
newWeight (Int!) The new weight of the device

ReshareDiffDeviceRemoved

Reshare request change of removing a signer
Fields forReshareDiffDeviceRemoved

Name Description
device (Device!) The device that was added
originalWeight (Int!) The weight of the device

ReshareDiffDeviceUnchanged

Reshare request change of unchanged device
Fields forReshareDiffDeviceUnchanged

Name Description
device (Device!) The device that was unchanged
weight (Int!) The weight of the device

ReshareDiffThreshold

Reshare request change of a threshold to a vault
Fields forReshareDiffThreshold

Name Description
originalThreshold (Int!) Original Number of signing power (shares / votes) for a reshare request or transaction request to form a consensus
newThreshold (Int!) New Number of signing power (shares / votes) for a reshare request or transaction request to form a consensus

ReshareDiffThresholdUnchanged

Reshare request with no change to the threshold of a vault
Fields forReshareDiffThresholdUnchanged

Name Description
threshold (Int!) No description

ReshareRequest

Represents a request to change the signing party of a vault (originalSigningParty) to a new signing party (newSigningParty). The status will transition as the request moves through the flow of consensus; and consensus can only be met if the original signers approved weight at-least matches the vaults threshold and any new signers have also approved.
Fields forReshareRequest

Name Description
id (ID!) No description
displayId (String!) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
expiresAt (DateTime) No description
status (ReshareRequestStatus!) No description
organisationId (String!) Organisation id that item belongs to
createdByUser (User!) User that submitted the reshareRequest
originalThreshold (Int) No description
threshold (Int!) Number of signing power (shares / votes) for a reshare request or transaction request to form a consensus
pendingSigners (Signer!) The proposed list of pending signers
originalSigners (Signer!) The signers before this reshare is executed
newSigners (Signer!) The proposed list of new signers
vault (Vault!) Vault that the reshareRequest applies to
votes (ReshareVote!) Collection of user submitted votes to approve or reject the request
foundedSigningParty (SigningParty) Signing party that is able to form a consensus to approve or reject the request
diff (ReshareDiff!) The changes that will be applied to the vault if the request is approved
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

ReshareVote

Request to change the signing party of a vault within the workspace associated to the access token
Fields forReshareVote

Name Description
id (ID!) No description
displayId (String!) No description
createdAt (DateTime!) No description
result (SignerVote!) No description
signer (Signer!) Signer that submitted the vote
reshareRequest (ReshareRequest!) Reshare request that the vote is associated with

Signer

Represents a physical device that holds signing power (shares) of a vault
Fields forSigner

Name Description
id (ID!) No description
createdAt (DateTime!) No description
weight (Int!) Number of signing power the signer has (also known as number of shares)
device (Device!) Physical device that this signer is bound to (1 device to many signers)
status (SignerStatus!) No description
signingParty (SigningParty) No description

SigningParty

Represents a collection of signers that form the consensus for a vault
Fields forSigningParty

Name Description
id (ID!) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
deletedAt (DateTime) No description
threshold (Int!) Required number of signing power (shares / votes) for a reshare request or transaction request to form a consensus
vault (Vault!) Vault that the signing party is part of
signers (Signer!) Collection of signers that are able to vote / cosign reshare requests or transaction requests associated with the signing party

Transaction

Represents a collection of signers that form the consensus for a vault
Fields forTransaction

Name Description
id (ID!) No description
displayId (String!) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
minedAt (DateTime) No description
amount (Decimal!) No description
transactionId (String!) Blockchain transaction ID
parentTransactionId (String) Blockchain transaction ID of the parent transaction. This is typically used for ERC20 transactions.
isParentTransaction (Boolean!) Returns true if the transaction is the parent. This is typically used for ERC20 transactions.
hasChildrenTransactions (Boolean!) Returns true if the transaction is the parent and has related child transactions. This is typically used for ERC20 transactions.
raw (String!) No description
status (TransactionStatus!) No description
blockHeight (Int!) Block height that the transaction was included in
transactionRequest (TransactionRequest) transactionRequest that founded the transaction. Null if its an inbound transaction
fees (Decimal!) Fees spent to execute the transaction in non unit format
blockHash (String!) No description
fromVault (Vault) Vault that sent the transaction. Null if its an external address and not a vault
toVault (Vault) Vault that received the transaction. Null if its an external address and not a vault
toAddress (String!) Address that received the transaction
fromAddress (String!) Address that sent the transaction
asset (Asset!) Asset sent in the transaction
explorerUri (String) No description
metadata (TransactionMetadata) Additional data related to the transaction
operationName (String) No description

TransactionHistoryItemConnection

No description
Fields forTransactionHistoryItemConnection

Name Description
edges (TransactionHistoryItemConnetionEdge!) No description
pageInfo (ConnectionPageInfo!) No description

TransactionHistoryItemConnetionEdge

No description
Fields forTransactionHistoryItemConnetionEdge

Name Description
cursor (String!) No description
node (TransactionHistoryItem!) No description

TransactionMetadata

No description
Fields forTransactionMetadata

Name Description
nonce (String) No description
status (Int) Status of the transaction after execution (1 = Ok, 0 = Fail, -1 = Pending, -2 = Unknown)
gasLimit (String) No description
gasUsed (String) No description
gasPrice (String) No description
contractData (String) No description
parsedContractInputs (ParsedContractInput) No description
parsedContractReceipt (ParsedContractReceipt) Parsed contract receipt and revert reason if the transaction failed.

TransactionRequest

Represents a request to sign a transaction. This object contains all the details of the intended transaction as well as a status that transitions as the request is approved, processed, and broadcasted to the blockchain.
Fields forTransactionRequest

Name Description
id (ID!) No description
displayId (String!) No description
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
expiresAt (DateTime) No description
organisationId (String!) Organisation id that item belongs to
createdByUser (User!) User that submitted the transactionRequest
amount (Decimal!) No description
sendingAddress (Address!) No description
sendingAddressId (ID!) No description
receivingAddress (String!) No description
vault (Vault!) Vault to send from
asset (Asset!) No description
assetId (ID!) No description
transactionId (ID) No description
transaction (Transaction) On-chain transaction related to the transactionRequest. Null if the transaction has not been broadcasted
memo (String) No description
rawTransaction (String) No description
status (TransactionRequestStatus!) No description
votes (TransactionRequestVote!) Collection of user submitted votes to approve or reject the transaction
deviceTransactionRequestSignings (DeviceTransactionRequestSigning!) Collection of device transaction request signings
metadata (TransactionRequestMetadata!) Additional data required by different chains to process the transaction such as fee etc...
explorerUri (String) No description
errorCode (String) The code of the failure if the transaction request failed
errorMessage (String) Error message which is user friendly about the failure if the transaction request failed

TransactionRequestMetadata

No description
Fields forTransactionRequestMetadata

Name Description
source (TransactionMetadataSourceType) Application type that created the transaction
sourceUrl (String) Application URL that created the transaction.
maxFeePerGas (Int) Maximum fee per gas for the transaction standard base10. For EVM chains only.
maxPriorityFeePerGas (Int) Maximum priority fee per gas for the transaction standard base10. For EVM chains only.
satsPerByte (Int) Sats per byte fee used for the transaction standard base10. For BTC only.
nonce (Int) The nonce value for the transaction standard base10. For EVM chains only.
signerInputV1 (String!) Protobuf binary encoded with the contents of the transaction.
contractData (String) Data to be included in an EVM transaction. This is used for calling smart contracts ect...

TransactionRequestVote

No description
Fields forTransactionRequestVote

Name Description
id (ID!) No description
displayId (String!) No description
createdAt (DateTime!) No description
result (SignerVote!) No description
signer (Signer!) No description
transactionRequest (TransactionRequest!) No description

User

No description
Fields forUser

Name Description
id (ID!) No description
devices (Device!) No description
profile (Profile!) No description

Vault

Represents a collection of addresses and balances secured by TSS MPC cryptography, and demonstrated in the form of a signing party; The signing party defines the distribution of "key-shares" (i.e weight) and the threshold of the vault; for any MPC TSS ceremonies (key-gen, re-sharing, transaction signing) to complete, the signers weight approving the operation needs to at-least match the threshold.
Fields forVault

Name Description
id (ID!) Unique ID used to identity a vault. CUID Format.
createdAt (DateTime!) No description
updatedAt (DateTime!) No description
deletedAt (DateTime) No description
name (String!) Name of the vault; For the users within the org to help identify the vault
description (String!) Description of the vault; For the users within the org to understand the intended usage of the vault
organisationId (String!) Unique ID used to identify an organisation. CUID Format.
purpose (VaultPurpose!) No description
createdByUser (User!) Unique ID used to identify a user. UUID Format.
status (VaultStatus!) Status of the vault. Can be either CREATING or CREATED
signers (Signer!) Signers (mobile devices / virtual signers) elected to participate in the MPC TSS ceremonies.
threshold (Int!) Minimum number of weight (shares) that need to approve an operation and proceed in MPC TSS ceremonies before it can be completed.
reshareNonce (Int!) Integer that is incremented every time a reshare is completed. A vault that has just been created and whose initial reshare request has not been signed yet would have a "reshareNonce" of -1.
visibleAssets (Address!) List of all addresses that are visible to the user. Used for UX/UI purposes.
curves (VaultCurve!) Eliptic curve algorithms generated for the vault
signingParty (SigningParty) Signing party that forms the consensus for the vault
balance (Decimal!) Total balance of the vault

VaultConnection

No description
Fields forVaultConnection

Name Description
edges (VaultConnetionEdge!) No description
pageInfo (ConnectionPageInfo!) No description

VaultConnetionEdge

No description
Fields forVaultConnetionEdge

Name Description
cursor (String!) No description
node (Vault!) No description

VaultCurve

VaultCurve represents an eliptic curve, algorithm and public key
Fields forVaultCurve

Name Description
id (ID!) No description
vault (Vault!) The vault associated with the curve
algorithm (SignatureAlgorithm!) No description
curve (ElipticCurve!) No description
publicKey (String!) Raw public key associated with the vault
xpub (String!) Reserved for bip32 support

VotingProgress

VotingProgress represents the vote parameters and instance of an operation
Fields forVotingProgress

Name Description
threshold (Int!) No description
approvedWeight (Int!) No description
progress (Decimal!) No description
votes (VotingProgressVote!) No description

VotingProgressVote

No description
Fields forVotingProgressVote

Name Description
vote (SignerVote) No description
weight (Int!) No description
device (Device!) No description
required (Boolean!) No description