Sent in an iq set stanza, to create a smart contract in the account of the sender. Expected response element: contract Note: The client is required to have a valid legal identity to create a contract, even if the contract is not signed. Note: Whenever the state of the contract is changed on the server, a message is sent to the bare JIDs of all parties of the contract, including the creator if not signed, containing the updated contract, in a contract element. Contracts should only be accepted by clients, if the sender corresponds to the provider, and if the server signature is valid, and corresponds to the public key of the server. If an XML schema is available on the server defining the structure of the machine-readable contents of the contract, based on its qualified name, it will be used to validate the contents of the contract. If that validation fails, an error is returned, and the contract is not created. If validation succeeds, information about this will be made available in the state portion of the contract. XML Schemas can either be registered with the Trust Provider out-of-band, or downloaded by the Trust Provider automatically, if accessible through the namespace URI, if it's using a downloadable URI scheme. The XML Schema must not contain processing instructions. The contract the legal identity of the client wants to create. Note: A contract has to be reviewed and approved by the Trust Provider before the contract can be signed. The review-process is performed out-of-band. By referencing a reviewed and approved contract instead of creating an absolutely new one, the legal identity can skip the review and approval steps otherwise required when creating a new contract. Note: The client must be authorized to access the referenced contract, in order to be able to create new contracts based on the referenced one. This element defines the parts of the contract. Parameters can be referenced from the human and machine readable texts, and provide a mechanism to maintain the text consistent. Array must not contain parameters not available in the referenced contract. Prameters available in the referenced contract will be used as-is, if not available in this sequence, or overwritten by the present parameters, if available. The identifier of a contract the legal identity wishes to base the new contract on (i.e. act as template for the new contract). Contract must exist, be well-defined, and be in an Approved, BeingSigned or Signed state to be used. Referencing contracts that are Proposed, Obsolete, Rejected or Failed must result in a failure. Note: If the contract resides on another trust provider, the actual trust provider must first get it using getContract. If not able to, the operation fails. Note: Contract IDs are case insensitive in searches and references. An optional base64-encoded nonce value that is used when encrypting protected parameter values. The nonce value is not allowed to change once it has been created. If not set by the creator of the contract, it will remain empty, or undefined. Attribute is only serialized if a non-empty nonce is available. A unique nonce ensures that parameter values are encrypted to unique representations in different contracts. Attributes defining visibility and duration of contract. Element containing information about a contract. Contents of the contract. Semantics is defined by qualified name of the element. If an XML scheme validating the contents is registered with the Trust Provider, it will be used to validate that the contents is well-formed and complete. Defines a role that is referenced from the signatures, and that can be referenced from the contract definition. Note: The selection of role has legal significance. Human-readable description of the role. Note: Multiple localized descriptions can be provided. Note: Use the xml:lang attribute to specify language used. Machine readable name of the role. Note: Names are case-insensitive in searches and references. Minimum amount of signatures required for this role, to make the contract legal. Note: A value of zero (0) defines an optional role. Maximum amount of signatures allowed for this role. If parts having this role, can revoke their signature, once signed. Revoking a signature can be used as a means to model consent-based agreements. Consent, in a privacy perspective, can typically be revoked. Revoking a signature is done, by calling obsoleteContract. This element defines the parts of the contract. Note: If not provided, the same parts as the template will be used. Parameters can be referenced from the human and machine readable texts, and provide a mechanism to maintain the text consistent. Human-readable version of the contract. Signatures of the contract. The signature is calculated on the contract element excluding the id attribute and the signature, status and serverSignature elements. All text nodes and attribute values contain XML-encoded normalized Unicode text (in NFC). XML is normalized. Unnecessary white space removed. Space characters only allowed white-space. The normalized XML, with attributes in alphabetical order, using double quotes, xmlns attributes only when required, &, <, >, " and ' consistently escaped, empty elements are closed using />, and no space when ending empty elements, is UTF-8 encoded before being signed. The contract element never includes the xmlns attribute when calculating the signature. Digital signature generated by the corresponding asymmetric cipher algorithm. The ID of the legal identity used to generate the signature. The Bare JID of the client used to generate the signature. The role the legal identity assumes when signing the contract. When the signature was generated. Any attached items associated with the contract. The status object is created and managed by the Trust Provider. Authorized clients can get the latest version of the contract by requesting it from the trust provider, given the id of the contract. Optional element containing role-reference parameter values of signatories. Contains the value of a role reference parameter. If the value of the element is non-empty, it contains the BASE64-encoded binary attachment associated with the parameter. The name of the role reference parameter. The value of the role reference parameter. If the value is an attachment reference, the value will be the attachment ID. Actual Internet Content Type of binary attachment. May differ from the declared Content-Type of the parameter, as the latter may include wildcards. Legal ID of uploader of the attachment. File name of attachment. Binary signature of the attachment, generated by an approved legal identity of the account-holder. Timestamp of signature. URI of attachment. JID of Trust Provider validating the correctness of the contract. Contains information about the current statue of the contract. When the contract was first created. When the contract was last updated. From when the contract is legally binding. Until when the contract is legally binding. Contract ID of template used to create the contract. If the contents element has been validated using a schema, the hash digest of the schema used, base64 encoded, will be made available here. The Hash function used to compute the Hash Digest. Server signature of the contract. The signature is calculated on the contract element excluding the serverSignature element. All text nodes and attribute values contain XML-encoded normalized Unicode text (in NFC). XML is normalized. Unnecessary white space removed. Space characters only allowed whitespace. The normalized XML, with attributes in alphabetical order, using double quotes, xmlns attributes only when required, &, <, >, " and ' consistently escaped, empty elements are closed using />, and no space when ending empty element, is UTF-8 encoded before being signed. The contract element never includes the xmlns attribute when calculating the signature. Note: The purpose of the server signature, is to attest to the integrity of the contract. Note: Server keys may change over time. If a signature does not validate, make sure to get the most recent public key from the server and check signature again. Digital signature generated by the corresponding asymmetric cipher algorithm. When the signature was generated. Any downloadable references to attachments assigned to the contract. As references might change over time, they are not included in signatures. All meta-data necessary to assert the validity and integrity of attachments are provided using attachment elements above. Attributes defining visibility and duration of contract. An identifier assigned to the contract. The identifier is formed as a JID, but is not a JID. The domain part corresponds to the domain of the Trust Provider. A client must not include an identifier when it creates a contract on the Trust Provider. An optional base64-encoded nonce value that is used when encrypting protected parameter values. The nonce value is not allowed to change once it has been created. If not set by the creator of the contract, it will remain empty, or undefined. Attribute is only serialized if a non-empty nonce is available. A unique nonce ensures that parameter values are encrypted to unique representations in different contracts. Defines a set of parameters of a contract. Defines a set of transient parameter values. String-valued parameter. Numerical parameter. Boolean parameter. Date parameter. Time parameter. Date and Time parameter. Duration parameter. Geo-spatial parameter. Calculation parameter. Role reference parameter. Contract reference parameter. Attachment reference parameter. Groups a set of parameters into a vector of sets of parameters. Contains a set of parameters that form a record. The record can be repeated forming a set of records, or record set. Human-readable description of the record set. Note: Multiple localized descriptions can be provided. Note: Use the xml:lang attribute to specify language used. Note: Descriptions are not required, if descriptions are available in the template. Defines a set of parameters forming one record in the record set. Defines one record of data in the record set. The name of the record set. Note: Names are case-insensitive in searches and references. Optional script expression validating the parameter. Maximum number of records in the record set. Minimum number of records in the record set. Abstract base type of contractual parameters. Human-readable description of the parameter. Note: Multiple localized descriptions can be provided. Note: Use the xml:lang attribute to specify language used. Note: Descriptions are not required, if descriptions are available in the template. The name of the parameter. Note: Names are case-insensitive in searches and references. A guiding text, that can be displayed to a user if no value is available. Optional script expression validating the parameter. Level of confidentiality of the information provided by the parameter. If attribute is not provided, parameter value is treated as a normal parameter value. This attribute replaces the value attribute, if the parameter protection level is Encrypted or Transient. For Transient parameters, this value will contain the base64-encoded binary representation of a GUID. For Encrypted parameters, the value will contain the base64-encoded encryption of the parameter value. Defines different Information Protection Levels. If no protection level is defined, values will be stored in the clear. The creator of a contract creates keys for the encryption and decryption of encrypted parameter values. The creator is responsible for sharing the keys with the other parts of the contract, using end-to-end encrypted communication. Only the parts who have received the shared secret can access the values of encrypted parameters. Encrypted parameter values are not available in logs. The UTF-8 encoding of the XML string representation of the parameter value is the clear text, prefixed by a random non-zero byte (see below), and suffixed by a number of code 0 bytes, is being encrypted. If no parameter value is available (i.e. null value), only a string representing the suffix of code 0 characters is encrypted. The length of the suffix string is calculated first by computing the SHA-256 hash of the concatenation of the encryption key, contract nonce and 4-byte encoding of the zero-based parameter index. The first byte of the hash is the length of the suffix string. The next non-zero byte in the hash represents the prefix, in case the encrypted string is not null. A transient parameter is sent out-of-scope of the signature. Instead, a GUID is used as a parameter value. This GUID can be used to peers to validate the signature of the contract. Transient parameters can be used to protect the privacy or secrecy of certain information, such as credit card information, voting, etc. Transient parameter values are only available in-transit, and must not be persisted. Transient parameter values are not transmitted to other parts of the contract, and cannot be displayed in human-readable text. Transient parameter values are not available in logs. Transient parameter values are not persisted. Type representing a string-valued contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional regular expression to validate the value of the string parameter. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Optional minimum lenth of the value of the parameter. Optional maximum lenth of the value of the parameter. Type representing a numerical contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Type representing a Boolean contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Type representing a Date contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Type representing a Date and Time contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Type representing a Time contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Type representing a Duration contractual parameter. The value of the parameter. The value attribute is required for contracts, but optional for templates. Optional minimum value of the parameter. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. If the `max` value is part of the valid range or not. Type representing a geo-spatial contractual parameter. The Value contains two or three floating-point coordiate values separated by commas (lat,long) or (lat,long,alt). The value of the parameter. The value attribute is required for contracts, but optional for templates. If the parameter represents the location of the actual contract, or contents of the contract. Optional minimum value of the parameter. Corresponds to the upper-left-hand corner of a square, on the Mercator map. If max.lat>min.lat, or max.long>min.long, the square wraps around the edges of the map. If the `min` value is part of the valid range or not. Optional maximum value of the parameter. Corresponds to the lower-right-hand corner of a square, on the Mercator map. If max.lat>min.lat, or max.long>min.long, the square wraps around the edges of the map. If the `max` value is part of the valid range or not. Defines how to handle altitude in the position. Altitude is required by the parameter. Altitude is optional by the parameter. Altitude is prohibited by the parameter. Simple type representing a geo-spatial value. The Value contains two or three floating-point coordiate values separated by commas (lat,long) or (lat,long,alt). The period character is used as decimal point. The floating-point values are not validated to be in the ranges [-90,90] and [-180,180] by the regular expression. Software must perform such validation separately. Type representing a Calculation contractual parameter. The exp attribute is used to calculate the value of the parameter, rather than validate its valid. Expressions used to calculate values reference other parameter values by name. Only non-calculation parameters (anywhere in the contract), or calculation parameters defined before a calculation parameter being evaluated, can be referenced however, in order to avoid circular recursion. Type representing a contractual parameter based on a property in one of the signatories identities. The role attribute is used to reference the role the party uses when signing the contract. The index attribute references the order (first being 1) of the role of the signatory. The identity property is indicated by the property attribute. Name of the role of the signatory. Index of signature of the of the signatory for the corresponding role. Name of the ID property of the signatory. If existance of the signatory and property value is required or not for the contract to be complete. If the property refers to an attachment, the expected Internet Content-Type (wildcards allowed) of the attachment. Type representing a reference to a smart contract. Human-readable label to be shown in stead of a reference, in contract text. Note: Multiple localized labels can be provided. Note: Use the xml:lang attribute to specify language used. Language used in the human-readable text. If no language is specified, the description will be considered the default description. The value of the parameter, containing the ID of the contract that is being referenced. The value attribute is required for contracts, but optional for templates. If the reference parameter is required or not. Restriction on the local name of the machine-readable part of the referenced contract. Restriction on the namespace of the machine-readable part of the referenced contract. Restriction on the Template ID of the referenced contract. Restriction on the provider of the referenced contract. Restriction on the role the creator must have in the referenced contract. Type representing a reference to an attachment that must be uploaded before the contract can be signed. The file name of the attachment to upload. If the attachment is required or not. Restriction on the Content-Type of the attachment. Wildcards are permitted. Smallest acceptable size of attachment, in bytes. Largest acceptable size of attachment, in bytes. Smallest acceptable width of attachment, in pixels, if relevant. Largest acceptable width of attachment, in pixels, if relevant. Smallest acceptable height of attachment, in pixels, if relevant. Largest acceptable height of attachment, in pixels, if relevant. This element defines the parts of the contract. The contract is an open contract that anybody can sign. The contract is only a template, and cannot be signed. Defines a part of a contract. Refers to a legal identity representing a part of the contract. Refers to one of the roles defined for the contract. What visibility the contract should have, or has. If the contract can act as a template for future contracts. The duration of the contract. The duration is calculated from the time of the last required signature. After a legally binding contract expires, this attribute specifies for how long the contract is required to be persisted in the archives before it can be manually deleted. After a legally binding contract expires, and the archiveReq period has expired, this attribute specifies an additional duration after which it is automatically deleted. Signatures will only be accepted after this point in time. Note: signatureAfter (if provided) must occur before signatureBefore (if provided). Signatures will only be accepted until this point in time. Note: signatureAfter (if provided) must occur before signatureBefore (if provided). Lists recognized contract states. The contract has been proposed as a new contract. It needs to be reviewed and approved by the Trust Provider before it can be used as a template or be signed. The contract has been deemed incomplete, inconsistent, or otherwise faulty. A rejected contract cannot be used as a template or be signed. A rejected contract can be updated by the creator, and thus be put in a Proposed state again. The contract has been reviewed and approved. It is still not signed, but can act as a template for other contracts. The contract is being signed. Not all required roles have signed however, and the contract is not legally binding. The contract has been signed by all required parties, and is legally binding. The contract, once signed, has either manually, or automatically, been deemed failed, by the Trust Provider. This can happen when any of the parties fail to fulfill their obligations as defined by the contract. The contract has been explicitly obsoleted by its owner, or by the Trust Provider. SHA-256 Hash function SHA-384 Hash function SHA-512 Hash function Visibility types for contracts. Contract is only accessible to the creator, and any parts in the contract. Contract is accessible to the creator of the contract, any parts in the contract, and any account on the Trust Provider server domain. Contract is accessible by everyone requesting it. It is not searchable. Contract is accessible by everyone requesting it. It is also searchable. Type defining the structure of human-readable text in contracts. Human readable text is first seen as a sequence of block constructs. Language used in the human-readable text. If no language is specified, the description will be considered the default description. Block-level constructs of human-readable text. Defines a paragraph of human-readable text. Defines a section having a header and a body of text. Defines a header for the section. Defines the body of the section. A sequence of bullet items of human-readable text. Represents one item in the list. A sequence of numbered items of human-readable text. Represents one item in the list. Shows a standalone image. Displays a horizontal separator. A table consisting of rows and cells. Represents one row in the table. Represents one cell in the table row. Horizontal alignment of contents in cell. The number of columns the cell spans. Default value is 1, i.e. the cell only spans one column. If the cell represents a header cell (true) or a normal cell (false). Default value is false, i.e. cell is a normal cell. Inline-level constructs of human-readable text. Some unformatted human-readable text. Is replaced by the value of a referenced parameter. Bold human-readdable text. Italic human-readdable text. Underline human-readdable text. Human-readdable text that is stricken through. Super-script human-readdable text. Sub-script human-readdable text. Breaks the current line. Following text is rendered on the following line. Shows an inline image. Base64-encoded binary representation of image. Defines an image caption, or alternative text. Internet-Content type of image. Width of image, in pixels. Height of image, in pixels. Sent by a client in an iq get to a Trust Provider, to retrieve a list (possibly empty) of contracts created by the legal identity of the client on the provider. Expected response element: contractReferences, if references are to be returned. Expected response element: contracts, if full contracts are to be returned. Result will start with the response at this offset into result set. Result will be limited to this number of items. If only contract references are to be returned. Sent by a client in an iq set to a Trust Provider hosting a contract that the client wants to sign. Expected response element: contract The signature of the contract using the current approved legal identity of the client. The signature is calculated on the contract element excluding the id attribute and the signature, status and serverSignature elements. All text nodes and attribute values contain XML-encoded normalized Unicode text (in NFC). XML is normalized. Unnecessary white space removed. Space characters only allowed whitespace. The normalized XML, with attributes in alphabetical order, using double quotes, xmlns attributes only when required, &, <, >, " and ' consistently escaped, empty elements are closed using />, and no space when ending empty element, is UTF-8 encoded before being signed. The contract element never includes the xmlns attribute when calculating the signature. Note: A client can choose to sign a contract on the same broker/provider as its legal identity is defined on, or on the broker/provider hosting the contract, if they are different. In the first case, the request is forwarded to the second provider hosting the contract, and the response is likewise forwarded back to the client. The first broker takes the opportunity to record the signature as well, in case the request is successful. In the second case, the first broker hosting the legal identity of a successful signature is simply informed by the broker hosting the contract of the signature via the contractSigned notification request. Identifier of the contract to sign. The role the legal identity assumes when signing the contract. A transferable signature, can be transferred to contracts based on the current contract. This is done however, only if all parameters and attributes remain the same in the new contract. Changing any of the attributes or parameters of the contract will break the signature, and the signature will not be transferred to the new contract. Digital signature generated by the corresponding asymmetric cipher algorithm. This element is sent in a message stanza, if the recipient is a client, or an iq set stanza, if recipient is a broker. Stanza is sent to inform the receiving end that a contract has been signed. It is sent between Trust Providers if the smart contract and the legal identity are hosted on separate brokers. It is also sent to the creator and parts of a contract, if a new signature has been added. Note: To validate the signature, the contract, and possibly some keys, have to be retrieved and validated. The signed contract is included in the message. If a contract uses a template from another broker, this message will be sent to the broker hosting the template as well. If contract reference parameters are available in the contract, the message will also be sent to the brokers hosting the corresponding referenced contracts. If sent in an iq set stanza to another broker, the response may contain an authorizeJid element response, informing the sender of a JID that needs to be authorized to validate the contract. The contract that was signed. The identity of the contract that has received the signature. The legal identity that has signed the contract. The role for which the legal identity has signed the contract. If the signature resulted the contract to become signed. When sent in a response to a broker request, contains information about a JID that will perform validation of the content that was sent. Bare JID that will be used in validation of content that was sent. Sent by a client in an iq get to its Trust Provider, to retrieve a list (possibly empty) of contracts signed by the client. Expected response element: contractReferences, if references are to be returned. Expected response element: contracts, if full contracts are to be returned. Result will start with the response at this offset into result set. Result will be limited to this number of items. If only contract references are to be returned. Contains a set of contract references. A contract reference. The identifier of a contract. Contains a set of contracts. A contract. A contract reference. This element is returned if it was not possible for the server to get the corresponding contract. The identifier of a contract. Sent by a client in an iq get to a Trust Provider, to retrieve a specific contract given its ID. The server only returns contracts registered on itself. It also authorizes all request, only returning contracts the client is authorized to see. Note: If a client is part of a contract, its server must also be authorized access to the contract. Otherwise, it cannot determine, if a client has the right to sign a contract or not. Expected response element: contract Identifier of the contract to retrieve. Sent by a client in an iq get to a Trust Provider, to retrieve a set of contracts given by their IDs. The server only returns contracts registered on itself. It also authorizes all request, only returning contracts the client is authorized to see. Note: If a client is part of a contract, its server must also be authorized access to the contract. Otherwise, it cannot determine, if a client has the right to sign a contract or not. Expected response element: contracts A contract reference. The identifier of a contract. Is sent by a Trust Provider to another Trust Provider in an iq get stanza, to check if a bare JID (on the receiving Trust Provider) is related to one or more of a set of legal identities. If the sender is not a Trust Provider itself, the request must be rejected. Expected response element: part Legal identity reference. Must reside on the destination Trust Provider. Bare JID to check if it is related to one or more of the provided set of legal identity references. Response to the isPart query. Sent by a client in an iq set to a Trust Provider, to obsolete one of its contracts. Expected response element: contract Note: A contract that is legally binding cannot be obsoleted, unless done so by a part, having a role where canRevoke is true. Identifier of the contract to obsolete. Note: Obsoleting a proposed contract that has not been approved, automatically turns it to Rejected. Note: Trying to obsolete a rejected or legally binding contract (without revoke permissions) returns a forbidden error. Sent by a client in an iq set to a Trust Provider, to delete one of its contracts. Expected response element: contract Note: A contract that is legally binding cannot be deleted before its required archive duration has expired. Identifier of the contract to delete. This element is sent in message stanza, to inform the receiving end that a contract has been created. It is sent to the creator and parts of a contract. Note: Only the contract identity is sent, not the contract itself. It is up to each recipient if they are interested in retrieving the contract or not. The identity of the contract that has been created. This element is sent in message stanza, to inform the receiving end that a contract has been updated or changed. It is sent to the creator and parts of a contract. Note: Only the contract identity is sent, not the contract itself. It is up to each recipient if they are interested in retrieving the latest version of the contract or not. The identity of the contract that has been updated. This element is sent in message stanza, to inform the receiving end that a contract has been deleted. It is sent to the creator and parts of a contract. Note: Only the contract identity is sent, not the contract itself. The identity of the contract that has been deleted. Sent in an iq set stanza, to update a smart contract in the account of the sender. Expected response element: contract Note: Only contracts that are Proposed, Rejected, Approved (but without signatures) and Obsoleted (but without signatures) can be updated. The contract the legal identity of the client wants to update. Note: The contract will be put in a Proposed state after the update. Sent in an iq get stanza to the Trust Provider, to get a list of XML schemas available on the broker. Expected response element: schemas Contains an array of schema references. Contains a schema reference. An array of Hash Digests representing the different versions of the schema available. XML Schema namespace. Represents a hash digest of something. Digest is BASE-64 encoded. Hash function used when calculating the digest. Sent in an iq get stanza to the Trust Provider, to get a specific XML schema. Expected response element: schema Note: If a specific digest is not provided, the most recent version of the schema will be returned. Digest references a specific version of the XML schema to be retrieved. The namespace of the schema to retrieve. Contains the text representation of a specific schema. Note: Even though the XML Schema is itself XML, it is returned as base-64 encoded binary BLOB, to avoid accidental processing, and to maintain digest integrity. Sent in an iq get stanza to the Trust Provider to retrieve any legal identities associated with the signatures of the contract. If the request is sent to the Trust Provider on which the contract is hosted, all legal identities are returned, if authorized. If the request is sent to a different Trust Provider, only legal identities on that Trust Provider, associated with the contract are returned, if the sender is the same as the domain of the referenced contract. Expected response element: id:identities Note: Only clients authorized to view the contract itself, are allowed to view its associated legal identities. Note: Request is authorized only if (1) the client has access to smart contract, or (2) sender is the same domain hosting the referenced contract. Both current and historic cannot both be false. Both can be true. The identity of the contract whose legal identities are requested. By default, the legal identities returned correspond to the timestamp of their signatures. This allows the cryptographic signatures to be validated. If the current legal identities of the corresponding signatures is desired, this attribute should be set to true. If keys have been updated, they cannot be used for validating the corresponding cryptographic signature in the contract. By default, the legal identities returned correspond to the timestamp of their signatures. This allows the cryptographic signatures to be validated. If this identity is not desired, this attribute should be set to false. Sent in an iq get stanza to the Trust Provider to retrieve any network identities associated with the legal identities that have signed the contract. If the request is sent to the Trust Provider on which the contract is hosted, all network identities are returned, if authorized. If the request is sent to a different Trust Provider, only network identities on that Trust Provider, associated with the contract are returned, if the sender is the same as the domain of the referenced contract. Expected response element: networkIdentities Note: Only clients authorized to view the contract itself, are allowed to view its associated network identities. Note: Request is authorized only if (1) the client has access to smart contract, or (2) sender is the same domain hosting the referenced contract. The identity of the contract whose network identities are requested. Contains a sequence of network identities, and what legal identities they are related to. A network identity, in the form of a bare JID. Corresponding legal identity. Sent in an iq get stansa to a Trust Provider to perform a search for public contracts. Expected response element: searchResult Places restrictions on the local name of the contents of public contracts. Return public contracts in which the local name of the contents is equal to this value. Return public contracts in which the local name of the contents matches this regular expression. Places restrictions on the namespace of the contents of public contracts. Return public contracts in which the namespace of the contents is equal to this value. Return public contracts in which the namespace of the contents matches this regular expression. Places restrictions on the identity of the template used to create the contract. Return public contracts based on a template that is equal to this value. Return public contracts based on a template that matches this regular expression. Places restrictions on the roles used in public contracts. Return public contracts defining a role equal to this value. Return public contracts defining a role matching this regular expression. Places restrictions on parameters used in public contracts. Return public contracts defining a named string-valued parameter equal to this value. Return public contracts defining a named string-valued parameter not equal to this value. Return public contracts defining a named string-valued parameter greater than this value. Return public contracts defining a named string-valued parameter greater than or equal to this value. Return public contracts defining a named string-valued parameter lesser than this value. Return public contracts defining a named string-valued parameter lesser than or equal to this value. Return public contracts defining a named string-valued parameter that matches this regular expression. Return public contracts defining a named numerical parameter equal to this value. Return public contracts defining a named numerical parameter not equal to this value. Return public contracts defining a named numerical parameter greater than this value. Return public contracts defining a named numerical parameter greater than or equal to this value. Return public contracts defining a named numerical parameter lesser than this value. Return public contracts defining a named numerical parameter lesser than or equal to this value. Return public contracts defining a named boolean parameter equal to this value. Return public contracts defining a named boolean parameter not equal to this value. Return public contracts defining a named date parameter equal to this value. Return public contracts defining a named date parameter not equal to this value. Return public contracts defining a named date parameter greater than this value. Return public contracts defining a named date parameter greater than or equal to this value. Return public contracts defining a named date parameter lesser than this value. Return public contracts defining a named date parameter lesser than or equal to this value. Return public contracts defining a named date and time parameter equal to this value. Return public contracts defining a named date and time parameter not equal to this value. Return public contracts defining a named date and time parameter greater than this value. Return public contracts defining a named date and time parameter greater than or equal to this value. Return public contracts defining a named date and time parameter lesser than this value. Return public contracts defining a named date and time parameter lesser than or equal to this value. Return public contracts defining a named time parameter equal to this value. Return public contracts defining a named time parameter not equal to this value. Return public contracts defining a named time parameter greater than this value. Return public contracts defining a named time parameter greater than or equal to this value. Return public contracts defining a named time parameter lesser than this value. Return public contracts defining a named time parameter lesser than or equal to this value. Return public contracts defining a named duration parameter equal to this value. Return public contracts defining a named duration parameter not equal to this value. Return public contracts defining a named duration parameter greater than this value. Return public contracts defining a named duration parameter greater than or equal to this value. Return public contracts defining a named duration parameter lesser than this value. Return public contracts defining a named duration parameter lesser than or equal to this value. Name of the parameter being queried. Places restrictions on when public contracts were created. Places restrictions on when public contracts were last updated. Places restrictions on when public contracts became legally binding. Places restrictions on when public contracts cease to be legally binding. Places restrictions on the duration of public contracts. Result will start with the response at this offset into result set. Result will be limited to this number of items. Contains the response to a search of smart contracts. A contract reference. The identifier of a contract. If more contracts are available, matching the search parameters. Return public contracts defining a named date and time-valued parameter equal to this value. Return public contracts defining a named date and time-valued parameter not equal to this value. Return public contracts defining a named date and time-valued parameter greater than this value. Return public contracts defining a named date and time-valued parameter greater than or equal to this value. Return public contracts defining a named date and time-valued parameter lesser than this value. Return public contracts defining a named date and time-valued parameter lesser than or equal to this value. Return public contracts defining a named duration-valued parameter equal to this value. Return public contracts defining a named duration-valued parameter not equal to this value. Return public contracts defining a named duration-valued parameter greater than this value. Return public contracts defining a named duration-valued parameter greater than or equal to this value. Return public contracts defining a named duration-valued parameter lesser than this value. Return public contracts defining a named duration-valued parameter lesser than or equal to this value. Sent by a client in an iq set to a Trust Provider to petition for the information related to a smart contract managed by the Trust Provider. The request must be signed using an approved and valid legal identity of the caller. Invalid requests must be rejected. The Trust Provider will forward the petition to the clients of the corresponding parts of the contract using a normal message containing a petitionContractMsg element. Expect an empty response on success. Optional element that can provide machine-readable context for petition. Identifier of the smart contract hosted by the Trust Provider, to which the caller requests access. Optional element specifying what properties will be forwarded to party making the request. Name of one property that will be forwarded. Optional element specifying what attachments will be forwarded to party making the request. Name of one attachment that will be forwarded, without file extension. A petition ID. This identity will follow the petition. A string containing the purpose of the request. This string can be shown to the recipients of the request. A nonce value, generated by a cryptographic pseudo random number generator. Used to introduce sufficient entropy in the request. Digital signature of the request using the legal identity (or one of the approved legal identities) of the caller. The signature is calculated on the following data: UTF8Encode(pid + ":" + id + ":" + purpose + ":" + nonce + ":" + fromBareJid), where fromBareJid is the Bare JID of the sender. Note: If a sender has multiple approved legal identities associated with it, the Trust Provider uses the signature to identify which identity has been used to form the signature. It is this identity that is later forwarded to the owner of the requested identity. The legal identity of the entity making the petition. This information can be used by the recipient of the message to make an informed decision on wether to accept, deny or ignore the request. Optional element that can provide machine-readable context for petition. The Bare JID of the entity requesting the information. Sent in a normal message stanza from a Trust Provider to a client, when the Trust Provider has received a petition for a smart contract to which the recipient of this message is part. The recipient can choose to ignore the message, and respond in its own time, sending an petitionContractResponse element with the response in an IQ set stanza back to the Trust Provider. Sent by a client in an iq set to a Trust Provider as an active response to a previous petition for information related to a smart contract to which the client is part. Expect an empty response on success. A successfull request will forward the response, and the referenced smart contract if approved, to the entity making the request, by sending a petitionContractResponseMsg element in a normal message stanza. Note: Only one of the parts need to consent to sharing the contract this time. The rationale is to mimick how we treat contracts in the physical world. Each part has a copy of the contract, and can choose to show this copy to others, for their purposes. The other parts cannot deny this. But at least one of the parts must consent to the petition for the entity making the petition to get access to the corresponding contract. Optional element that can provide machine-readable context for petition response. Identifier of the smart contract referred to by the petition. A petition ID. This identity will follow the petition. Bare JID of the entity making the petition. If the Trust Provider can share the smart contract information with the entity making the petition. Sent in a normal message stanza from a Trust Provider to a client, when the Trust Provider has received a response on a petition made by the client for a smart contract. The legal identity requested, if available, and the owner of the identity consented in sharing the information. This information must only be used for the purposes described in the original petition. Optional element that can provide machine-readable context for petition response. A petition ID. This identity will follow the petition. If the Trust Provider can share the smart contract information with the entity making the petition. Sent in an iq set stanza from a client to a Trust Provider, to add an attachment to a smart contract that is yet to be signed. After first signature, contract must not accept new attachments. Attachments can be photos, documents, or other types of objects that have a well-defined Internet Content Type. The contents of the attachment may have been uploaded to the Trust Provider using HTTP File Upload (XEP-0363) before this command is sent. Only the creator of the contract can add attachments to it. After the file has been registered as an attachment, it must be removed, after first giving time for lost messages and retries, from the temporary storage of the HTTP File Upload service by the Trust Provider, for privacy reasons. Access privileges to legal identities or smart contracts, automatically infer access privileges to any attachments associated with them. Expected response element: contract Smart Contract to which the attachment is to be assigned. The URL of the content. It may previously have been uploaded using HTTP File Upload (XEP-0363). Signature of the content assigned to the smart contract. The signature must be made by an approved legal identity of the sender. Sent in an iq set stanza from a client to a Trust Provider, to remove an attachment from a smart contract that is proposed or is approved, but before it is being signed. A client can only remove attachments from its own contracts. Expected response element: contract Identity of attachment to remove. Represents an attachment. An attachment can be assigned to smart contracts. The identity of the attachment. The legal identity of the uploader of the attachment. Internet Content-Type of attachment. Filename of attachment. Signature of attachment, made by the uploader. Timestamp of attachment upload. Includes information on how to download an attachment. The ID of the attachment referenced to. An URL to download the attachment. Attachments must be protected using the Neuro.Foundation.Sign WWW-authentication mechanism to make sure only authorized clients can access the attachment. Defines a contract proposal for a proposed part. Can be sent in a normal message stanza directly to the indended recipient. Shared secrets are used to encrypt and decrypt confidential parameters in the contract. If using confidential parameters, make sure to send proposals using End-to-End Encrypted messages. The recipient of a contract proposal will assume the sender bare JID represents the bare JID of the creator. This fact is used when decrypting encrypted parameters in the contract. If a third party forwards a contract proposal containing encrypted parameters, the recipient will not be able to decrypt the parameter values. Only the creator of a contract can send contract proposals if the contract contains encrypted parameters. Key used for encryption and decryption. Algorithm used for encryption and decryption. The same symmetric ciphers as are available for End-to-End encryption (E2EE) can be used. Algorithms requiring an IV, use the same IV algorithms as for E2EE, replacing id with parameter name, type with XML local name of parameter type, from with Bare JID of creator, to with the base64-encoded contract nonce and counter with the zero-based parameter index. Algorithms requiring associated data, calculate it as the UTF-8 encoding of the parameter name. AES-256 encryption of string representation of parameter value, UTF-8 encoded, using Cipher Block Chaining (CBC) and PKCS#7 padding. Parameter must not be accepted if the decryption fails. Initiation Vector (IV) is the first 16 bytes of the SHA-256 hash of the concatenation of the Contract ID and the Parameter Name. ChaCha20 encryption of string representation of parameter value, UTF-8 encoded, starting with block counter 1. Parameter must not be accepted if the decryption fails. Initiation Vector (IV) is the first 8 bytes of the SHA-256 hash of the concatenation of the Contract ID and the Parameter Name. AEAD-ChaCha20-Poly1305 authenticated encryption with associated data of string representation of parameter value, UTF-8 encoded. Parameter must not be accepted if the decryption fails. Initiation Vector (IV) is the first 8 bytes of the SHA-256 hash of the concatenation of the Contract ID and the Parameter Name. The Associated Data (AD) used in the AEAD algorithm is the UTF-8 encoding of the concatenation of the Contract ID and the Parameter Name. The ID of the proposed contract. The proposed role of the recipient in the proposed contract. An optional message to present to the recipient. Can be sent in a message from one broker to another, to indicate the failure of a contract hosted by the recipient. Only brokers hosting the template of the contract referred to, a contract reference pointed to by the contract, or hosting a signatory of the contract, is allowed to send this message. The message must be ignored if received from another party. The identity of the contract that has failed. The reason for failing the contract.