Represents a transaction initiated by a client.
| JSON representation |
|---|
{ "source": { object ( |
| Fields | |
|---|---|
source |
Optional. The transaction sender. Deprecated: Use |
senderId |
Optional. The ID of the account that is sending this transaction. One of |
signatories[] |
Optional. Accounts that, in addition to the sender, have signed this transaction. Deprecated: Use |
otherSignatoryIds[] |
Optional. The IDs of accounts that, in addition to the sender, have signed this transaction. |
sequenceNumber |
Required. A unique, monotonically increasing number, starting from 0. This number must be increased by one for each transaction previously submitted to the network by the same transaction sender. Note this does not include any transaction units that may have been submitted as part of a chain, which must not set a sequence number. But it does include the sender of the transaction chain itself. |
chainedUnit |
Must be set to true if this client transaction is part of a transaction chain. Otherwise, it must be set to false. This is necessary to prevent a signed transaction intended to be part of a chain from being submitted on its own. |
| The client transaction-specific message. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: | |
app |
Optional. Deprecated: Use one of the message specific fields instead. A client transaction-specific message. Should be any one of:
An object containing fields of an arbitrary type. An additional field |
operational |
Optional. An operational transaction message. Note this can only be sent by the platform operator. Should be any one of: An object containing fields of an arbitrary type. An additional field |
transferPlatformOperatorTransaction |
Optional. Message for transferring the platform operator role to a new account. |
createCurrencyOperatorTransaction |
Optional. Message for creating a new currency operator. |
transferCurrencyOperatorTransaction |
Optional. Message for transferring the currency operator role to a new account. |
createClearinghouseTransaction |
Optional. Message for creating a new clearinghouse. |
createAccountManagerTransaction |
Optional. Message for creating a new account manager. |
createTokenManagerTransaction |
Optional. Message for creating a new token manager associated to the currency of the operator sending the request. |
increaseTokenIssuanceLimitTransaction |
Optional. Notifies the network that the target account has deposited reserve funds and increases its token issuance limit. |
decreaseTokenIssuanceLimitTransaction |
Optional. Notifies the network that the target account wishes to withdraw reserve funds and decreases its token issuance limit. |
settlementRequestTransaction |
Optional. Message for initiating a settlement operation. |
mintTransaction |
Optional. Message for minting currency tokens and transferring them to an account. |
burnTransaction |
Optional. Message for burning currency tokens from an account. |
createAccountTransaction |
Optional. Message for creating a new user account. |
deactivateAccountTransaction |
Optional. Message for deactivating a user account. |
activateAccountTransaction |
Optional. Message for activating a user account. |
addRolesTransaction |
Optional. Message for adding roles to an account. |
removeRolesTransaction |
Optional. Message for removing roles from an account. |
changeAccountManagerTransaction |
Optional. Message for changing the account manager of an account. |
transferTransaction |
Optional. Message for transferring tokens from one user account to another. |
createContractTransaction |
Optional. Message for creating a new contract on the ledger. |
grantContractPermissionsTransaction |
Optional. Message for granting permissions to a contract. |
invokeContractMethodTransaction |
Optional. Message for invoking the execution of a contract method. |
createContractTokenManagerTransaction |
Optional. Message for creating a new token manager associated to the currency of the operator sending the request. |
transferContractTokenManagerTransaction |
Optional. Message for transferring the token manager role for a currency from one account to another. |
removeSigningPublicKeyTransaction |
Optional. Message for removing an account signing key. |
replaceSigningPublicKeyTransaction |
Optional. Message for replacing an account signing key. |
chain |
Optional. Message for a transaction chain including multiple transaction units to execute in sequence. |
| End of mutually exclusive fields. | |
TransferPlatformOperator
Transfers the ownership of the platform operator to a new account. The sender must be the current platform operator.
If the transaction is successful, deactivates the current platform operator, and the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new platform operator. This public key will be associated with the platform operator and stored on the ledger. It will be used to validate the signature of the transactions emanating from the platform operator's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
CreateCurrencyOperator
Creates a new currency operator. The sender must be the platform operator.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
This transaction must introduce a new currency into the system. If the specified currency already exists, this transaction will fail. If the currency operator has to be replaced, the TransferCurrencyOperator transaction should be sent instead.
| JSON representation |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new currency operator. This public key will be associated with the currency operator and stored on the ledger. It will be used to validate the signature of the transactions emanating from the operator's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
currency |
Optional. Deprecated: Use |
currencyCode |
Optional. The fiat currency associated with this operator, represented as a 3-capital-letter ISO 4217 code. Considered public information. |
TransferCurrencyOperator
Transfers the ownership of the given currency operator to a new account. The sender must be the platform operator.
If the transaction is successful, deactivates the given currency operator, and the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new currency operator. This public key will be associated with the currency operator and stored on the ledger. It will be used to validate the signature of the transactions emanating from the currency operator's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
currencyOperator |
Optional. Deprecated: Use |
currencyOperatorId |
Optional. The ID of the currency operator to be replaced. Must be active. One of |
CreateClearinghouse
Creates a new clearinghouse. The sender must be a currency operator.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new clearinghouse. Note that this is not the public key of the operator. This public key will be associated with the clearinghouse and stored on the ledger. It will be used to validate signature of the transactions emanating from the clearinghouse's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
settlementMode |
Required. The settlement mode for this clearinghouse. Required. Considered public information. |
CreateAccountManager
Creates a new account manager. The sender must be a currency operator.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new account manager. Note that this is not the public key of the operator. This public key will be associated with the account manager and stored on the ledger. It will be used to validate the signature of the transactions emanating from the account manager's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
defaultTokenManager |
Optional. Deprecated: Use |
defaultTokenManagerId |
Optional. The ID of the default token manager for the accounts that will be created by this manager. The value is limited to 60 characters. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
CreateTokenManager
Creates a new token manager associated to the currency of the operator sending the request. The sender must be a currency operator.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{
"publicKey": string,
"keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new token manager. Note that this is not the public key of the operator. This public key will be associated with the token manager and stored on the ledger. It will be used to validate the signature of the transactions emanating from the token manager's account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
IncreaseTokenIssuanceLimit
Transactions for token issuance and minting. Notifies the network that the target account has deposited reserve funds and increases its token issuance limit. The sender must be a clearinghouse account.
| JSON representation |
|---|
{ "tokenManager": { object ( |
| Fields | |
|---|---|
tokenManager |
Optional. Deprecated: Use |
tokenManagerId |
Optional. The ID of the institutional account whose mint limit is to be raised. This account must be a token manager for the transaction to be valid. One of |
amount |
Required. The amount by which to raise the limit. The amount must be positive. |
DecreaseTokenIssuanceLimit
Notifies the network that the target account wishes to withdraw reserve funds and decreases its token issuance limit. The sender must be a clearinghouse account.
Note that this transaction must be successfully finalized before the reserve funds can be withdrawn. This is necessary because it is possible for the transaction to fail (for example, if the minted amount is already above the requested reduced limit).
| JSON representation |
|---|
{ "tokenManager": { object ( |
| Fields | |
|---|---|
tokenManager |
Optional. Deprecated: Use |
tokenManagerId |
Optional. The ID of the institutional account whose mint limit is to be lowered. This account must be a token manager for the transaction to be valid. One of |
amount |
Required. The amount by which to lower the limit. The amount must be positive. The transaction will fail if the reduced limit will fall below the currently issued tokens. |
SettlementRequest
Initiates a settlement operation between two token managers. The sender must be a clearinghouse account.
In the deferred SettlementMode where the clearinghouse has custody of the token manager funds, this is the only transaction that needs to be sent to execute a settlement between the two token managers.
| JSON representation |
|---|
{ "payer": { object ( |
| Fields | |
|---|---|
payer |
Optional. Immutable. Deprecated: Use |
payerId |
Optional. Immutable. The account ID of the party that needs to make the fund transfer. One of |
beneficiary |
Optional. Immutable. Deprecated: Use |
beneficiaryId |
Optional. Immutable. The account ID of the party that will receive the funds. One of |
balance |
Required. Immutable. The balance of issued tokens that need to be transferred by the |
roundId |
Required. Immutable. The round ID at which this settlement amount was computed. |
Mint
Mints currency tokens and transfers them to a specified account. The sender must be a token manager.
| JSON representation |
|---|
{ "mintAmount": { object ( |
| Fields | |
|---|---|
mintAmount |
Required. The amount to mint. The amount must be such that the total tokens minted by the token manager do not exceed the mint limit. If the amount is higher than that, the transaction must be rejected |
beneficiary |
Optional. Deprecated: Use |
beneficiaryId |
Optional. The ID of the account to which the minted amount should be transferred. The receiving account must have the |
CreateAccount
Creates a new user account. The sender must be an account manager.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{ "publicKey": string, "keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the account owner. Note that this is not the public key of the sender. This is the public key of the new account owner and it will be stored on the ledger. It will be used to validate the signature of the transactions emanating from the created account. The format of the public key is defined by the A base64-encoded string. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
roles[] |
Optional. The list of roles to grant to this account. |
accountStatus |
Optional. The status of the account to be created. By default, the account status of a newly created account will be |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
tokenManager |
Optional. Deprecated: Use |
tokenManagerId |
Optional. The ID of the token manager for this account. This field is optional and if not supplied, the default token manager associated to the account manager (that is, the sender of this transaction) will be used. The value is limited to 60 characters. |
DeactivateAccount
Marks an account as ACCOUNT_STATUS_INACTIVE. The sender must be the account manager of the account to deactivate.
This implies that the account owner will not be able to make any transactions on the account regardless of the roles.
| JSON representation |
|---|
{
"account": {
object ( |
| Fields | |
|---|---|
account |
Optional. Deprecated: Use |
accountId |
Optional. The ID of the account to be deactivated. One of |
RemoveRoles
Removes the specified roles from the account. The sender must be the account manager of the account to modify.
| JSON representation |
|---|
{ "account": { object ( |
| Fields | |
|---|---|
account |
Optional. Deprecated: Use |
accountId |
Optional. The ID of the account to be modified. One of |
roles[] |
Required. The roles to be removed. |
Transfer
Transfers tokens from one user account to another. The sender must be a regular user account, as opposed to a privileged account like a token manager or an account manager.
Additionally, the transaction sender must have the ROLE_PAYER enabled on it, while the receiver must have the ROLE_RECEIVER enabled on it.
| JSON representation |
|---|
{ "beneficiary": { object ( |
| Fields | |
|---|---|
beneficiary |
Optional. Deprecated: Use |
beneficiaryId |
Optional. The ID of the account that receives the tokens. One of |
amount |
Required. The amount to transfer. The amount must be positive. |
CreateContract
Stores a contract on the ledger.
| JSON representation |
|---|
{ "contractBytes": string, "arguments": { string: { object ( |
| Fields | |
|---|---|
contractBytes |
Serialised contract bytes. A base64-encoded string. |
arguments |
Optional. Immutable. Deprecated: Use An object containing a list of |
initArguments |
Optional. Immutable. Contains arguments for the An object containing a list of |
contractComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the contract. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
GrantContractPermissions
Grants permissions to the contract by the transaction sender. If delegateContractId is specified, the permissions and corresponding storage are granted exclusively to the delegateContractId contract, not the sender.
Note that there is no support for revoking permissions.
| JSON representation |
|---|
{ "contract": { object ( |
| Fields | |
|---|---|
contract |
Optional. Deprecated: Use |
contractId |
Optional. The ID of the contract to which permissions are being granted. One of |
permissions[] |
The permissions to be granted. |
delegateContractId |
Optional. The contract ID for which permissions are being granted. The transaction sender must be the owner of this contract. |
InvokeContractMethod
Invokes the execution of a contract method.
| JSON representation |
|---|
{ "contract": { object ( |
| Fields | |
|---|---|
contract |
Optional. Deprecated: Use |
contractId |
Optional. The ID of the contract to run. One of |
methodName |
Name of the method to run. |
arguments |
Optional. Immutable. Deprecated: Use An object containing a list of |
methodArguments |
Optional. Immutable. Contains arguments to pass to the method. An object containing a list of |
payment |
The amount to be paid. Must be greater than zero when invoking payable methods; and zero for non-payable ones. |
CreateContractTokenManager
Creates a new contract token manager associated with the currency of the operator sending the request. The sender must be a currency operator. The newly created contract token manager is active by default. If the contract token manager has to be replaced, the TransferContractTokenManager transaction should be sent instead. If another contract token manager associated with the same currency exists, this transaction will fail.
Unlike regular token managers, contract token managers are not allowed to execute transactions such as mint or burn. They can, however, participate in settlement operations.
If the transaction is successful, the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{
"publicKey": string,
"accountComment": string,
"keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new contract token manager. Note that this is not the public key of the operator. This public key will be associated with the contract token manager and stored on the ledger. It will be used to validate the signature of the transactions emanating from the contract token manager's account. The format of the public key is defined by the A base64-encoded string. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
TransferContractTokenManager
Transfers the ownership of the contract token manager to a new account. The sender must be the current currency operator for the currency.
If the transaction is successful, deactivates the current contract token manager for the currency, and the ID of the newly created account is returned as an event in the TransactionCertificate of the finalized transaction.
| JSON representation |
|---|
{
"publicKey": string,
"accountComment": string,
"keyFormat": enum ( |
| Fields | |
|---|---|
publicKey |
Required. The public key of the new contract token manager. Note that this is not the public key of the operator. This is the public key of the new contract token manager and it will be stored on the ledger. It will be used to validate the signature of the transactions emanating from the contract token manager's account. The format of the public key is defined by the A base64-encoded string. |
accountComment |
Optional. Immutable. An opaque comment field that is not interpreted by the system but stored on the ledger in the account. Considered public information. Maximum length is 128 characters. May be left empty. Once created, the field is immutable. |
keyFormat |
Optional. Immutable. The key format of the public key. If not specified, defaults to a binary serialized keyset in Tink wire format. Considered public information. |
RemoveSigningPublicKey
Removes the account signing key from the specified slot. The other slot must not be empty, and must hold the key used to sign the ClientTransaction.
| JSON representation |
|---|
{
"keySlot": enum ( |
| Fields | |
|---|---|
keySlot |
Required. The key slot we're removing the key from. If this is already empty, the transaction will fail. |
ReplaceSigningPublicKey
Replaces the account signing key in the specified slot. The other slot must not be empty, and must hold the key used to sign the ClientTransaction.
| JSON representation |
|---|
{ "keySlot": enum ( |
| Fields | |
|---|---|
keySlot |
Required. The key slot we're replacing the key in. |
newPublicKey |
Required. The new public key, which will replace the public key in the specified slot. The format of the public key is defined by the newKeyFormat field. Considered public information. A base64-encoded string. |
newKeyFormat |
Required. The key format of the new public key. See the definition of KeyFormat for a list of supported formats. Considered public information. |
TransactionChain
A transaction chain including multiple transaction units to execute in sequence.
The units will be executed sequentially, in the order they are listed. If all of the units succeed, their cumulative effects will be committed atomically to the world state. Otherwise, if any of them fails, the whole chain will be failed and none of its effects will be applied.
| JSON representation |
|---|
{ "units": [ string ] } |
| Fields | |
|---|---|
units[] |
The individual units of the chain. Each unit must be a serialized Note that the serialized bytes are required in order to determine the bytes to be signed for the chain itself. A base64-encoded string. |