multiSignBlock

This block provides a way to specify multiple signators for a single VC document, and then create a VP based on it.

1. Properties

Block Property
Definition
Example Input
Status
tag
Unique name for the logic block.
multiSignBlock
permissions
Which entity has rights to interact at this part of the workflow.
NoRole
defaultActive
Shows whether this block is active at this time and whether it needs to be shown.
Checked or unchecked.
On errors
Called if the system error has occurs in the Block
  • No action
  • Retry
  • Go to step
  • Go to tag
Stop Propagation
End processing here, don't pass control to the next block.
Checked or unchecked.
Threshold (%)
Proportion Of signators which are required to sign the document to achieve quorum for it to transition to ‘signed’ status. Must be a number between 0 and 100.
0-100
Note: The system assigns ‘not signed’ status to the document when 100 – threshold percentage of users indicated rejection status.

2. Events

Event
Description
Content
SignatureQuorumReachedEvent
This event occurs when the threshold number (quorum) of signatures has been reached.
now-signed target VC document which can then be used for further processing
SignatureSetInsufficientEvent
This event occurs when the threshold number (quorum) of rejections has been achieved
rejected (target) VC document which can be used for further processing

3. Data Format

3.1 POST request

{
"document":{
"id":"…" – ID of the VC document
},
"status":"SIGNED" – new status, can be SIGNED or DECLINED
}

3.2 GET request

{
blockType: "multiSignBlock"
id:"61ed0335-8b7e-44d9-aedd-0c86c5806442"
status: {
confirmationStatus: - final status, it is ‘null’ if the quorum is not reached
data: [
{
username,
did – did and username of the user which took the decision
status – the decision of the user, the value space is: SIGNED/DECLINED
}
]
}
}

Array of the decisions for each user can be as follows:

Type of Decision
Description
declinedCount
number of users who declined signing the document
declinedPercent
percentage of users who declined need signing the document
declinedThreshold
threshold number of users who need to decline signing the document to reach the final decision
documentStatus
status of the document for the current users, null if the user has not made a selection to sign or decline
signedCount
number of users who have signed the document
signedPercent
percentage of users who have signed the document
signedThreshold
threshold number of users who need to sign the document to reach the final decision
threshold
threshold in terms of percentage
total
total number of users in the signing group

4. Example

4.1 Important Points

4.1.1 multiSignBlock must be used with Groups.
4.1.2 multiSignBlock must be child block of grid block to receive all data it requires to operate.

5. UI

5.1 Signing the document

We have an option of Signing/ Declining the document by clicking on "Sign" or "Decline" button for the document as shown below:

5.2 Threshold Display

Number of users, who have signed or declined the document can be displayed with threshold as shown below:

5.3 Detailed Signature Information

To get detailed information on Signature status, we have an info icon near the threshold as shown below:

5.4 Final Signature Result

To get the final Signature Result with detailed information such as which users have Signed / Declined, we need to hover on the Status as shown below:

API Parameters

get
/policies/{policyId}/blocks/{uuid}
post
/policies/{policyId}/blocks/{uuid}