Skip to main content

transaction.proto

path sdk/transaction/transaction.proto

package m10.sdk.transaction


Messages​

Action​

NameTypeDescription
tx_iduint64Transaction ID of the action.
namestringName of the action.
context_idbytes[optional] unique Context ID, allowing linking of multiple requests
from_accountbytesInvoking account ID.
targetTargetTarget acount ID of the action.
payloadbytesAction payload.

Actions​

NameTypeDescription
actionsrepeated ActionList of actions.

CommitThreshold​

Amount-based commit threshold tier; applies when transfer amount >= min_amount.

NameTypeDescription
min_amountuint64
min_commitsuint32

CommitTransfer​

NameTypeDescription
pending_tx_iduint64Transaction ID of the pending transfer.
new_stateCommitTransfer.TransferStateNew state of the transfer.

CreateLedgerAccount​

NameTypeDescription
parent_idbytesParent account ID.
issuanceboolWhether this is an issuance account.
frozenboolWhether the account is initially frozen.
instrumentInstrumentInstrument associated with the account.
balance_limituint64Balance limit for the account.
issuance_limituint64Maximum issued balance for issuance accounts. 0 = unlimited.
min_commitsuint32Minimum distinct ACCEPT commits to finalize a pending transfer from this account. 0 = 1 commit.
commit_thresholdsrepeated CommitThresholdAmount-based tiers; effective threshold is the highest applicable min_commits.

CreateLedgerTransfer​

NameTypeDescription
ledger_idstringLedger identifier.
nonceuint64Nonce for replay protection.
transferCreateTransferTransfer details.

CreateLedgerTransfers​

NameTypeDescription
transfersrepeated CreateLedgerTransferLedger transfers
valid_untiluint64UTC timestamp defining the end date of the contract Interpret as microseconds since the UNIX_EPOCH

CreateLock​

NameTypeDescription
lock_idbytesUnique identifier for this lock (client-generated, e.g. UUID bytes).
cycle_idbytesThe settlement cycle this lock belongs to.
account_idbytesThe account whose balance is being locked.
amountuint64The amount to reserve.
reasonstringHuman-readable reason. Defaults to "SETTLEMENT".
settlement_batch_refbytesOptional reference to the settlement batch/cycle document.

CreateToken​

NameTypeDescription
addressbytesAddress for the token.
account_idbytesAccount ID associated with the token.
valueuint64Value of the token.

CreateTransfer​

NameTypeDescription
transfer_stepsrepeated TransferStepList of transfer steps.

FinalizedTransfer​

NameTypeDescription
tx_iduint64Transaction ID of the finalized transfer.
context_idbytesContext ID associated with the transfer.
transfer_stepsrepeated TransferStepList of transfer steps.
errorTransactionErrorError information, if any.
timestampfixed64Timestamp of the transfer.
stateFinalizedTransfer.TransferStateState of the transfer.

FinalizedTransfers​

NameTypeDescription
transfersrepeated FinalizedTransferList of finalized transfers.

GetAccountRequest​

NameTypeDescription
idbytesID of the account to retrieve.

GetActionRequest​

NameTypeDescription
tx_iduint64Transaction ID of the action to retrieve.

GetTransferRequest​

NameTypeDescription
tx_iduint64Transaction ID of the transfer.

IndexedAccount​

NameTypeDescription
idbytesAccount ID.
issuanceIndexedAccount.IssuanceIssuance information.
balanceuint64Account balance.
frozenboolWhether the account is frozen.
instrumentInstrumentInstrument associated with the account.
balance_limituint64Balance limit of the account.
locked_balanceuint64Sum of active settlement locks on the account.
available_balanceuint64Spendable balance after lock reservation.
display_codestringDisplay Code of the account
min_commitsuint32Minimum distinct ACCEPT commits required to finalize a transfer. Always at least 1.
commit_thresholdsrepeated CommitThresholdAmount-based commit threshold tiers.

IndexedAccount.Issuance​

NameTypeDescription
issued_balanceuint64Issued balance of the account.
non_leaf_childrenuint64Number of non-leaf child accounts.
leaf_childrenuint64Number of leaf child accounts.
issuance_limituint64Maximum allowed issued balance. 0 = unlimited.

Instrument​

NameTypeDescription
codestringInstrument code (e.g., currency code).
decimal_placesuint32Number of decimal places for the instrument.
descriptionstringDescription of the instrument.
display_codestringUnique display code for the instrument. Equals `code` if not set.

InvokeAction​

Invokes a registered action by sending an opaque payload to a Target

NameTypeDescription
namestringUnique name of the action to invoke
from_accountbytesInvoking account ID
targetTargetSpecifies the identity/identities who have permission to see & be notified of the invoked action
payloadbytesOpaque payload

ListActionsRequest​

NameTypeDescription
namestringName of the action to filter by.
account_idbytesAccount ID to filter by.
context_idbytesContext ID to filter by.
limituint64Maximum number of actions to return.
min_tx_iduint64Minimum transaction ID to include.
max_tx_iduint64default = maximum possible tx id / Maximum transaction ID to include.

ListTransferRequest​

Transfers are returned in descending order from max_tx_id to min_tx_id

NameTypeDescription
account_idbytesAccount ID to filter transfers by.
context_idbytesContext ID to filter transfers by.
limituint64Maximum number of transfers to return.
include_child_accountsboolWhether to include transfers from child accounts.
min_tx_iduint64Minimum transaction ID to include.
max_tx_iduint64default = maximum possible tx id / Maximum transaction ID to include.
stateFinalizedTransfer.TransferStateState of the transfer.

LockDocument​

NameTypeDescription
lock_idbytes
cycle_idbytes
account_idbytes
amountuint64
statusLockStatus
created_atuint64
created_bybytes
reasonstring
settlement_batch_refbytes
redemption_tx_refbytes
release_tx_refbytes

OfflineToken​

NameTypeDescription
dataOfflineToken.DataToken data.
signatureSignatureSignature for the token.

OfflineToken.Data​

NameTypeDescription
iduint64Token ID.
addressbytesToken address.
account_idbytesAccount ID associated with the token.
valueuint64Token value.
currencystringCurrency of the token.

RedeemLocksForCycle​

NameTypeDescription
cycle_idbytesThe settlement cycle being redeemed.
redemption_tx_refbytesReference to the confirmed Fedwire settlement transaction.
stepsrepeated RedemptionStepOne entry per lock. All steps are applied atomically.

RedeemToken​

NameTypeDescription
tokenRedeemableTokenRedeemable token.
account_idbytesAccount ID for redemption.

RedeemableToken​

NameTypeDescription
dataRedeemableToken.DataToken data.
signatureSignatureSignature for the token.

RedeemableToken.Data​

NameTypeDescription
idbytesToken ID.
addressbytesToken address.
inputsrepeated RedeemableToken.TokenInputList of token inputs.
currencystringToken currency.

RedeemableToken.TokenInput​

NameTypeDescription
inputuint64Input value.
valueuint64Value associated with the input.

RedemptionStep​

NameTypeDescription
lock_idbytes
holder_account_idbytes
issuance_account_idbytes
amountuint64

ReleaseLock​

NameTypeDescription
lock_idbytes
release_refbytesReference to the release/abort transaction or reason document.

SetBalanceLimit​

NameTypeDescription
account_idbytesAccount ID to set the balance limit for.
balance_limituint64New balance limit.

SetDisplayCode​

NameTypeDescription
account_idbytesAccount ID to set the display code for.
display_codestringNew display code

SetFreezeState​

NameTypeDescription
account_idbytesAccount ID to set freeze state for.
frozenboolWhether to freeze the account.

SetInstrument​

NameTypeDescription
account_idbytesAccount ID to set the instrument for.
codestringInstrument code.
decimal_placesuint32Number of decimal places.
descriptionstringInstrument description.
display_codestringUnique display code for the instrument.

SetIssuanceLimit​

NameTypeDescription
account_idbytesAccount ID of the issuance account.
issuance_limituint64New issuance limit. 0 = unlimited.

SetMinCommits​

NameTypeDescription
account_idbytesAccount ID to update.
min_commitsuint32New baseline threshold. 0 = revert to default of 1.
commit_thresholdsrepeated CommitThresholdReplaces the account's commit_thresholds entirely. An empty list clears all tiers.

SettlementCycle​

NameTypeDescription
cycle_idbytes
asset_idbytes
statusSettlementCycleStatus
cutoff_atuint64
settled_atuint64
closed_atuint64
created_bybytes
operator_metadatabytes

Signature​

NameTypeDescription
public_keybytesPublic key used for the signature.
signaturebytesSignature data.
algorithmSignature.AlgorithmSignature algorithm.

Target​

NameTypeDescription
account_idbytesAccount ID
any_accountgoogle.protobuf.EmptyAny Account

TransactionData​

NameTypeDescription
transferCreateTransfer
create_ledger_accountCreateLedgerAccount
set_freeze_stateSetFreezeState
document_operationsm10.sdk.DocumentOperations
invoke_actionInvokeAction
initiate_transferCreateTransfer
commit_transferCommitTransfer
set_instrumentSetInstrument
set_balance_limitSetBalanceLimit
set_issuance_limitSetIssuanceLimit
set_display_codeSetDisplayCode
set_min_commitsSetMinCommits
create_tokenCreateToken
redeem_tokenRedeemToken
create_lockCreateLock
release_lockReleaseLock
redeem_locks_for_cycleRedeemLocksForCycle

TransactionError​

NameTypeDescription
codeTransactionError.CodeError code.
messagestringError message.

TransactionRequestPayload​

Decoded `LedgerRequest.payload` message data for requests related to transactions and ledger state.

NameTypeDescription
nonceuint64Replay protection
timestampuint64UNIX timestamp in microseconds
context_idbytes[optional] unique Context ID, allowing linking of multiple requests
dataTransactionDataRequest payload data.

TransactionResponse​

NameTypeDescription
tx_iduint64Unique transaction ID.
errorTransactionErrorError information, if any.
timestampfixed64Transaction timestamp.
account_createdbytesResponses / account ID.
transfer_committedCreateTransferCommitted transfer details.
tokenOfflineToken

TransferStep​

NameTypeDescription
from_account_idbytesSource account ID.
to_account_idbytesDestination account ID.
amountuint64Amount to transfer.
metadatarepeated google.protobuf.AnyMetadata associated with the transfer step.

Enums​

CommitTransfer.TransferState​

NameNumberDescription
ACCEPTED0
REJECTED1

FinalizedTransfer.TransferState​

NameNumberDescription
ACCEPTED0
REJECTED1
PENDING2
EXPIRED3
TRANSFER_STATE_UNSPECIFIED4Sentinel value used only as a filter in requests; not stored on finalized transfers.

LockStatus​

NameNumberDescription
ACTIVE0
REDEEMED1
RELEASED2

SettlementCycleStatus​

NameNumberDescription
OPEN0
LOCKED1
CASH_SETTLED2
CLOSED3
ABORTED4

Signature.Algorithm​

NameNumberDescription
P256_SHA256_ASN10
ED255191
ED25519_PH_SHA_5122

TransactionError.Code​

NameNumberDescription
UNKNOWN0Generic status codes
UNIMPLEMENTED1
NOT_FOUND2
ALREADY_EXISTS3
UNAUTHORIZED4
INTERNAL46
BAD_REQUEST5Request is malformed
INVALID_REQUEST_TYPE6Invalid/unsupported transaction request type
INVALID_ACCOUNT_ID7Invalid account ID
INVALID_TRANSFER8Invalid transfer parameters (amount, accounts, etc)
MESSAGE_TOO_LARGE10The request message was too large to be processed.
INVALID_SIGNATURE11The request signature does not match the request payload
VERIFICATION_FAILED12Signature verification failed
REPLAY_PROTECTION20Replay protection was triggered, e.g. nonce reuse, bad block window
INVALID_EXPRESSION21Invalid expression used
INCORRECT_TYPE22
ACCOUNT_FROZEN23Ledger-specific status codes
UNMODIFIED_STATE24
INSUFFICIENT_BALANCE25
BALANCE_OVERFLOW26
ACCOUNT_DEPTH_EXCEEDED27
HOLDING_LIMIT_EXCEEDED28
ISSUANCE_LIMIT_EXCEEDED29
INVALID_TARGET30Action specific status codes
DISPLAY_CODE_CONFLICT40Instrument specific status codes
INVALID_DISPLAY_CODE41
INSUFFICIENT_AVAILABLE_BALANCE42Settlement lock specific status codes
LOCK_NOT_FOUND43
INVALID_LOCK_STATE44
DUPLICATE_LOCK_ID45next free is 47
COMMIT_ALREADY_RECORDED47Multi-commit threshold status codes