wallet-core/src/proto at master · trustwallet/wallet-core
pseudomuto/protoc-gen-doc: Documentation generator plugin for Google Protocol Buffers
git clone https://github.com/trustwallet/wallet-core.git /tmp/src/trustwallet-core
bash tc.sh --gen-proto-doc /tmp/src/trustwallet-core/src/proto /tmp/output.md
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| chain_id | bytes |  | Chain identifier (256-bit number) | 
| nonce | bytes |  | Nonce (256-bit number) | 
| gas_price | bytes |  | Gas price (256-bit number) | 
| gas_limit | bytes |  | Gas limit (256-bit number) | 
| to_address | string |  | Recipient's address. | 
| amount | bytes |  | Amount to send in wei (256-bit number) | 
| payload | bytes |  | Optional payload | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| private_key | bytes |  |  | 
| destination | string |  |  | 
| value | uint64 |  |  | 
| fee | uint64 |  |  | 
| nonce | uint64 |  | current latest transaction serial number | 
| timestamp | uint64 |  | current timestamp in millisecond | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  |  | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| nonce | bytes |  | Nonce (256-bit number) | 
| gas_price | bytes |  | Gas price (256-bit number) | 
| gas_limit | bytes |  | Gas limit (256-bit number) | 
| to_address | string |  | Recipient's address. | 
| amount | bytes |  | Amount to send in wei (256-bit number) | 
| payload | bytes |  | Optional payload | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded transaction bytes. | 
| signature | bytes |  | Signature. | 
Top
Amount
Fee
Message for sending coins.
| Field | Type | Label | Description | 
|---|
| from_address | string |  |  | 
| to_address | string |  |  | 
| amounts | Amount | repeated |  | 
| type_prefix | string |  | default is cosmos-sdk/MsgSend | 
Signature
| Field | Type | Label | Description | 
|---|
| public_key | bytes |  |  | 
| signature | bytes |  |  | 
Input data necessary to create a signed order.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| signature | bytes |  | Signature | 
| json | string |  | Signed transaction in JSON. | 
Message for staking.
| Field | Type | Label | Description | 
|---|
| delegator_address | string |  |  | 
| validator_address | string |  |  | 
| amount | Amount |  |  | 
| type_prefix | string |  | cosmos-sdk/MsgDelegate to stake and cosmos-sdk/MsgUndelegate to unstake | 
Transaction
Message for staking.
| Field | Type | Label | Description | 
|---|
| delegator_address | string |  |  | 
| validator_address | string |  |  | 
| type_prefix | string |  | default is cosmos-sdk/MsgWithdrawDelegationReward | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| encoded | string |  | JSON-encoded transaction parameters. | 
| signature | bytes |  | Signature. | 
| Name | Number | Description | 
|---|
| Transfer | 0 |  | 
Top
transaction signing input
transaction signing output
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded Action bytes | 
| hash | bytes |  | Signed Action hash | 
Top
Bitcoin transaction out-point reference.
| Field | Type | Label | Description | 
|---|
| hash | bytes |  | The hash of the referenced transaction. | 
| index | uint32 |  | The index of the specific output in the transaction. | 
| sequence | uint32 |  | Transaction version as defined by the sender. | 
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| hash_type | uint32 |  | Hash type to use when signing. | 
| amount | int64 |  | Amount to send. | 
| byte_fee | int64 |  | Transaction fee per byte. | 
| to_address | string |  | Recipient's address. | 
| change_address | string |  | Change address. | 
| private_key | bytes | repeated | Available private keys. | 
| scripts | SigningInput.ScriptsEntry | repeated | Available redeem scripts indexed by script hash. | 
| utxo | UnspentTransaction | repeated | Available unspent transaction outputs. | 
| use_max_amount | bool |  | If sending max amount. | 
| coin_type | uint32 |  | Coin type (forks). | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| transaction | Transaction |  | Resulting transaction. Note that the amount may be different than the requested amount to account for fees and available funds. | 
| encoded | bytes |  | Signed and encoded transaction bytes. | 
| fee | int64 |  | Total transaction fees. | 
| max_amount | int64 |  | Maximum spendable amount. | 
| transaction_id | string |  | Transaction id | 
| Field | Type | Label | Description | 
|---|
| version | sint32 |  | Transaction data format version. | 
| lockTime | uint32 |  | The block number or timestamp at which this transaction is unlocked. | 
| inputs | TransactionInput | repeated | A list of 1 or more transaction inputs or sources for coins. | 
| outputs | TransactionOutput | repeated | A list of 1 or more transaction outputs or destinations for coins | 
Bitcoin transaction input.
| Field | Type | Label | Description | 
|---|
| previousOutput | OutPoint |  | Reference to the previous transaction's output. | 
| sequence | uint32 |  | Transaction version as defined by the sender. | 
| script | bytes |  | Computational script for confirming transaction authorization. | 
Bitcoin transaction output.
| Field | Type | Label | Description | 
|---|
| value | int64 |  | Transaction amount. | 
| script | bytes |  | Usually contains the public key as a Bitcoin script setting up conditions to claim this output. | 
Describes a preliminary transaction plan.
| Field | Type | Label | Description | 
|---|
| amount | int64 |  | Amount to be received at the other end. | 
| available_amount | int64 |  | Maximum available amount. | 
| fee | int64 |  | Estimated transaction fee. | 
| change | int64 |  | Change. | 
| utxos | UnspentTransaction | repeated | Selected unspent transaction outputs. | 
Top
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| transaction | Transaction |  | Resulting transaction. Note that the amount may be different than the requested amount to account for fees and available funds. | 
| encoded | bytes |  | Signed and encoded transaction bytes. | 
| fee | int64 |  | Total transaction fees. | 
| max_amount | int64 |  | Maximum spendable amount. | 
| transaction_id | string |  | Transaction id | 
| Field | Type | Label | Description | 
|---|
| serializeType | uint32 |  | Serialization format | 
| version | uint32 |  | Transaction data format version | 
| inputs | TransactionInput | repeated | A list of 1 or more transaction inputs or sources for coins. | 
| outputs | TransactionOutput | repeated | A list of 1 or more transaction outputs or destinations for coins | 
| lockTime | uint32 |  | The time when a transaction can be spent (usually zero, in which case it has no effect). | 
| expiry | uint32 |  | The block height at which the transaction expires and is no longer valid. | 
Decred transaction input.
| Field | Type | Label | Description | 
|---|
| previousOutput | TW.Bitcoin.Proto.OutPoint |  | Reference to the previous transaction's output. | 
| sequence | uint32 |  | Transaction version as defined by the sender. | 
| valueIn | int64 |  |  | 
| blockHeight | uint32 |  |  | 
| blockIndex | uint32 |  |  | 
| script | bytes |  | Computational script for confirming transaction authorization. | 
Decred transaction output.
| Field | Type | Label | Description | 
|---|
| value | int64 |  | Transaction amount. | 
| version | uint32 |  | Transaction output version. | 
| script | bytes |  | Usually contains the public key as a Decred script setting up conditions to claim this output. | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| version | uint32 |  | Transaction version | 
| nonce | uint64 |  | Nonce | 
| to_address | string |  | Recipient's address. | 
| amount | bytes |  | Amount to send (256-bit number) | 
| gas_price | bytes |  | GasPrice (256-bit number) | 
| gas_limit | uint64 |  | GasLimit | 
| private_key | bytes |  | Private Key | 
| code | bytes |  | Smart contract code | 
| data | bytes |  | String-ified JSON object specifying the transition parameter | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| signature | bytes |  | Signed signature bytes. | 
Top
| Field | Type | Label | Description | 
|---|
| private_key | bytes |  | The stake account private key | 
| vote_pubkey | string |  |  | 
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  |  | 
| Field | Type | Label | Description | 
|---|
| private_key | bytes |  | The stake account private key | 
| recipient | string |  |  | 
| value | uint64 |  |  | 
Top
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded transaction bytes. | 
Top
| Field | Type | Label | Description | 
|---|
| hash | bytes |  |  | 
| Field | Type | Label | Description | 
|---|
| id | int64 |  |  | 
| Field | Type | Label | Description | 
|---|
| text | string |  |  | 
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| signature | string |  | Signature. | 
| Name | Number | Description | 
|---|
| CREATE_ACCOUNT | 0 |  | 
| PAYMENT | 1 |  | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| amount | int64 |  |  | 
| asset | string |  |  | 
| fee | int64 |  | minimum 0.001 Waves (100000 Wavelets) for now | 
| fee_asset | string |  |  | 
| to | string |  |  | 
| attachment | bytes |  | any 140 bytes payload, will be displayed to the client as utf-8 string | 
| timestamp | int64 |  | in millis | 
| private_key | bytes |  |  | 
Transaction signing output.
Top
Result type.
| Field | Type | Label | Description | 
|---|
| success | bool |  | Whether the operation was successful. | 
| error | string |  | Optional error message, only present if success is false. | 
| objects | google.protobuf.Any | repeated | Result objects, if any. | 
Top
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  |  | 
Top
| Field | Type | Label | Description | 
|---|
| sender | bytes |  | 0x166E681B // prefix | 
originating address |
| symbol | string |  | symbol for trading pair in full name of the tokens |
| refid | string |  | order id to cancel |
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0xC1665300 // prefix | 
signer address |
| swap_id | bytes |  |  |
| random_number | bytes |  |  |
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0xB33F9A24 // prefix | 
signer address |
| amount | SendOrder.Token | repeated |  |
| swap_id | bytes |  |  |
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0xB33F9A24 // prefix | 
signer address |
| to | bytes |  | recipient address |
| recipient_other_chain | string |  |  |
| sender_other_chain | string |  |  |
| random_number_hash | bytes |  | hash of a random number and timestamp, based on SHA256 |
| timestamp | int64 |  |  |
| amount | SendOrder.Token | repeated |  |
| expected_income | string |  | expected gained token on the other chain |
| height_span | int64 |  |  |
| cross_chain | bool |  |  |
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0x3454A27C // prefix | 
signer address |
| swap_id | bytes |  |  |
0x2A2C87FA
| Field | Type | Label | Description | 
|---|
| pub_key | bytes |  | public key bytes of the signer address | 
| signature | bytes |  | signature bytes, please check chain access section for signature generation | 
| account_number | int64 |  | another identifier of signer, which can be read from chain by account REST API or RPC | 
| sequence | int64 |  | sequence number for the next transaction | 
0xEB5AE987          // prefix
bytes               // public key bytes
Input data necessary to create a signed order.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded transaction bytes. | 
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0xE774B32D // prefix | 
owner address |
| symbol | string |  | token symbol, in full name with "-" suffix |
| amount | int64 |  | amount of token to freeze |
| Field | Type | Label | Description | 
|---|
| from | bytes |  | 0x6515FF0D // prefix | 
owner address |
| symbol | string |  | token symbol, in full name with "-" suffix |
| amount | int64 |  | amount of token to unfreeze |
| Field | Type | Label | Description | 
|---|
| sender | bytes |  | 0xCE6DC043 // prefix | 
originating address |
| id | string |  | order id, optional |
| symbol | string |  | symbol for trading pair in full name of the tokens |
| ordertype | int64 |  | only accept 2 for now, meaning limit order |
| side | int64 |  | 1 for buy and 2 fory sell |
| price | int64 |  | price of the order, which is the real price multiplied by 1e8 (10^8) and rounded to integer |
| quantity | int64 |  | quantity of the order, which is the real price multiplied by 1e8 (10^8) and rounded to integer |
| timeinforce | int64 |  | 1 for Good Till Expire(GTE) order and 3 for Immediate Or Cancel (IOC) |
| Field | Type | Label | Description | 
|---|
| msgs | bytes | repeated | int64 SIZE-OF-ENCODED // varint encoded length of the structure after encoding 0xF0625DEE // prefix | 
array of size 1, containing the transaction message, which are one of the transaction type below |
| signatures | bytes | repeated | array of size 1, containing the standard signature structure of the transaction sender |
| memo | string |  | a short sentence of remark for the transaction, only for Transfer transactions. |
| source | int64 |  | an identifier for tools triggerring this transaction, set to zero if unwilling to disclose. |
| data | bytes |  | reserved for future use |
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| from_address | string |  | Sender address. | 
| to_address | string |  | Recipient address. | 
| value | bytes |  | Transfer amount. | 
| step_limit | bytes |  | The amount of step to send with the transaction. | 
| timestamp | int64 |  | UNIX epoch time (from 1970.1.1 00:00:00) in microseconds | 
| nonce | bytes |  | Integer value increased by request to avoid replay attacks. | 
| network_id | bytes |  | Network identifier | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | string |  | JSON-encoded transaction parameters. | 
| signature | bytes |  | Signature. | 
Top
| Field | Type | Label | Description | 
|---|
| to | string |  | Recipient address. | 
| value | bytes |  | Transaction amount. | 
| data | bytes |  | Payload data. | 
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| chain_tag | uint32 |  | Last byte of the genesis block ID which is used to identify a blockchain to prevent the cross-chain replay attack. | 
| block_ref | uint64 |  | Reference to a specific block. | 
| expiration | uint32 |  | How long, in terms of the number of blocks, the transaction will be allowed to be mined in VeChainThor. | 
| clauses | Clause | repeated | An array of Clause objects. / / Each clause contains fields To, Value and Data to enable a single transaction to carry multiple tasks issued / by the transaction sender. | 
| gas_price_coef | uint32 |  | Coefficient used to calculate the gas price for the transaction. | 
| gas | uint64 |  | Maximum amount of gas allowed to pay for the transaction. | 
| depends_on | bytes |  | ID of the transaction on which the current transaction depends. | 
| nonce | uint64 |  | Number set by user. | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded transaction bytes. | 
| signature | bytes |  | Signature. | 
Top
Delegation operation specific data.
Next field: 2
| Field | Type | Label | Description | 
|---|
| delegate | string |  |  | 
An operation that can be applied to the Tezos blockchain.
Next field: 12
A list of operations and a branch.
Next field: 3
Origination operation specific data.
Next field: 3
| Field | Type | Label | Description | 
|---|
| manager_pubkey | string |  |  | 
| balance | int64 |  |  | 
Reveal operation specific data.
Next field: 2
| Field | Type | Label | Description | 
|---|
| public_key | bytes |  |  | 
Input data necessary to create a signed Tezos transaction.
Next field: 3
Transaction signing output.
Next field: 2
| Field | Type | Label | Description | 
|---|
| signed_bytes | bytes |  |  | 
Transaction operation specific data.
Next field: 3
| Field | Type | Label | Description | 
|---|
| destination | string |  |  | 
| amount | int64 |  |  | 
| Name | Number | Description | 
|---|
| ENDORSEMENT | 0 | Note: Proto3 semantics require a zero value. | 
| REVEAL | 7 |  | 
| TRANSACTION | 8 |  | 
| ORIGINATION | 9 |  | 
| DELEGATION | 10 |  | 
Top
| Field | Type | Label | Description | 
|---|
| coin_type | uint32 |  | BIP44 network ID | 
| transaction | string |  | JSON transaction | 
| private_key | string |  | Private Key in HEX format | 
| Field | Type | Label | Description | 
|---|
| code | uint32 |  | Error code | 
| description | string |  | Error description | 
Top
Raw transaction data
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| from_address | string |  | sender's address. | 
| chain_id | bytes |  | Chain identifier (256-bit number) | 
| nonce | bytes |  | Nonce (256-bit number) | 
| gas_price | bytes |  | Gas price (256-bit number) | 
| gas_limit | bytes |  | Gas limit (256-bit number) | 
| to_address | string |  | Recipient's address. | 
| amount | bytes |  | Amount to send in wei, 1 NAS = 10^18 Wei (256-bit number) | 
| timestamp | bytes |  | Timestamp to create transaction (256-bit number) | 
| payload | string |  | Optional payload | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| chain_id | bytes |  | Chain id (256-bit number) | 
| sender | string |  | Sender's username | 
| recipient | string |  | Recipient's username | 
| amount | double |  | Amount in "BRAVO" or "TEST" | 
| testnet | bool |  | Whether the transaction is for testnet | 
| memo | string |  | Memo to attach to the transaction | 
| reference_block_id | bytes |  | Reference Block Id (160-bits) | 
| reference_block_time | sfixed32 |  | Timestamp on the reference block | 
| private_key | bytes |  | Sender's private key's raw bytes | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| json_encoded | string |  | JSON of the signed transaction. | 
Top
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address. | 
| frozen_balance | int64 |  | Frozen balance. Minimum 1 | 
| frozen_duration | int64 |  | Frozen duration | 
| resource | string |  | Resource type: BANDWIDTH | 
| receiver_address | string |  | Receiver address | 
| Field | Type | Label | Description | 
|---|
| transaction | Transaction |  | Transaction. | 
| private_key | bytes |  | Private key. | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| id | bytes |  | Transaction identifier. | 
| signature | bytes |  | Signature. | 
| ref_block_bytes | bytes |  |  | 
| ref_block_hash | bytes |  |  | 
| Field | Type | Label | Description | 
|---|
| asset_name | string |  | Asset name. | 
| owner_address | string |  | Sender address. | 
| to_address | string |  | Recipient address. | 
| amount | int64 |  | Amount to send. | 
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address. | 
| to_address | string |  | Recipient address. | 
| amount | int64 |  | Amount to send. | 
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address | 
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address | 
| resource | string |  | Resource type: BANDWIDTH | 
| receiver_address | string |  | Receiver address | 
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address | 
| vote_address | string | repeated | Vote addresses | 
| support | bool |  |  | 
| count | int32 |  |  | 
| Field | Type | Label | Description | 
|---|
| vote_address | string |  |  | 
| vote_count | int64 |  |  | 
| Field | Type | Label | Description | 
|---|
| owner_address | string |  | Sender address | 
Top
Input data necessary to create a signed transaction
| Field | Type | Label | Description | 
|---|
| chain_id | string |  | Chain ID string, mainnet, testnet and privatenet | 
| to_address | string |  | Recipient address | 
| theta_amount | bytes |  | Theta token amount to send in wei (256-bit number) | 
| tfuel_amount | bytes |  | TFuel token amount to send in wei (256-bit number) | 
| sequence | uint64 |  | Sequence number of the transaction for the sender address | 
| fee | bytes |  | Fee amount in TFuel wei for the transaction (256-bit number) | 
| private_key | bytes |  | Private key | 
Transaction signing output
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  | Signed and encoded transaction bytes | 
| signature | bytes |  | Signature | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| from_address | string |  | Address of the sender with "ak_" prefix | 
| to_address | string |  | Address of the recipient with "ak_" prefix | 
| amount | bytes |  |  | 
| fee | bytes |  |  | 
| payload | string |  | Message, optional | 
| ttl | uint64 |  | Time to live until block height | 
| nonce | uint64 |  |  | 
| private_key | bytes |  |  | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | string |  | Signed and encoded transaction bytes, Base64 with checksum | 
| signature | string |  | Signature, Base58 with checksum | 
Top
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| encoded | bytes |  |  | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| chain_id | bytes |  | Chain identifier (256-bit number) | 
| nonce | bytes |  | Nonce (256-bit number) | 
| gas_price | bytes |  | Gas price (256-bit number) | 
| gas_limit | bytes |  | Gas limit (256-bit number) | 
| to_address | string |  | Recipient's address. | 
| amount | bytes |  | Amount to send in wei (256-bit number) | 
| payload | bytes |  | Optional payload | 
| private_key | bytes |  | Private key. | 
| from_shard_id | bytes |  | From shard ID (256-bit number) | 
| to_shard_id | bytes |  | To Shard ID (256-bit number) | 
Transaction signing output.
Top
Values for an Asset object.
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| chain_id | bytes |  | Chain id (256-bit number) | 
| reference_block_id | bytes |  | Reference Block Id (256-bits) | 
| reference_block_time | sfixed32 |  | Timestamp on the reference block | 
| currency | string |  | Currency (e.g. "eosio.token") | 
| sender | string |  | Sender's username | 
| recipient | string |  | Recipient's username | 
| memo | string |  | Memo attached to the transaction | 
| asset | Asset |  | Asset details and amount | 
| private_key | bytes |  | Sender's private key's raw bytes | 
| private_key_type | KeyType |  | Type of the private key | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| json_encoded | string |  | JSON of the packed transaction. | 
| Name | Number | Description | 
|---|
| LEGACY | 0 |  | 
| MODERNK1 | 1 |  | 
| MODERNR1 | 2 |  | 
Top
Input data necessary to create a signed transaction.
| Field | Type | Label | Description | 
|---|
| private_key | bytes |  | Private key | 
| parent_block | bytes |  | Optional parent block hash | 
| link_block | bytes |  | Hash of a block to receive from | 
| link_recipient | string |  | Recipient address to send coins to | 
| representative | string |  | Representative address | 
| balance | string |  | Account balance (128-bit unsigned integer, as a string) | 
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| signature | bytes |  | Signature | 
| block_hash | bytes |  | Block hash | 
Top
The message defines transaction action struct.
| Field | Type | Label | Description | 
|---|
| contract | string |  | contract name | 
| action_name | string |  | action name | 
| data | string |  | data | 
The message defines transaction amount limit struct.
| Field | Type | Label | Description | 
|---|
| token | string |  | token name | 
| value | string |  | limit value | 
The message defines signature struct.
| Field | Type | Label | Description | 
|---|
| algorithm | Algorithm |  | signature algorithm | 
| signature | bytes |  | signature bytes | 
| public_key | bytes |  | public key | 
Input data necessary to create a signed transaction.
Transaction signing output.
| Field | Type | Label | Description | 
|---|
| transaction | Transaction |  | Signed transaction | 
The message defines the transaction request.
| Field | Type | Label | Description | 
|---|
| time | int64 |  | transaction timestamp | 
| expiration | int64 |  | expiration timestamp | 
| gas_ratio | double |  | gas price | 
| gas_limit | double |  | gas limit | 
| delay | int64 |  | delay nanoseconds | 
| chain_id | uint32 |  | chain id | 
| actions | Action | repeated | action list | 
| amount_limit | AmountLimit | repeated | amount limit | 
| signers | string | repeated | signer list | 
| signatures | Signature | repeated | signatures of signers | 
| publisher | string |  | publisher | 
| publisher_sigs | Signature | repeated | signatures of publisher | 
The enumeration defines the signature algorithm.
| Name | Number | Description | 
|---|
| UNKNOWN | 0 | unknown | 
| SECP256K1 | 1 | secp256k1 | 
| ED25519 | 2 | ed25519 | 
| .proto Type | Notes | C++ Type | Java Type | Python Type | 
|---|
| double |  | double | double | float | 
| float |  | float | float | float | 
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | 
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | 
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | 
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | 
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | 
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | 
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | 
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | 
| sfixed32 | Always four bytes. | int32 | int | int | 
| sfixed64 | Always eight bytes. | int64 | long | int/long | 
| bool |  | bool | boolean | boolean | 
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | 
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | 
.
├── Aeternity.proto
├── Aion.proto
├── Any.proto
├── ARK.proto
├── Binance.proto
├── Bitcoin.proto
├── Bravo.proto
├── Common.proto
├── Cosmos.proto
├── Decred.proto
├── EOS.proto
├── Ethereum.proto
├── Harmony.proto
├── Icon.proto
├── IOST.proto
├── IoTeX.proto
├── Nano.proto
├── Nebulas.proto
├── Nimiq.proto
├── Ontology.proto
├── Ripple.proto
├── Semux.proto
├── Solana.proto
├── Stellar.proto
├── Tezos.proto
├── Theta.proto
├── Tron.proto
├── VeChain.proto
├── Waves.proto
└── Zilliqa.proto
0 directories, 30 files
syntax = "proto3";
package TW.Ethereum.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Chain identifier (256-bit number)
    bytes chain_id = 1;
    // Nonce (256-bit number)
    bytes nonce = 2;
    // Gas price (256-bit number)
    bytes gas_price = 3;
    // Gas limit (256-bit number)
    bytes gas_limit = 4;
    // Recipient's address.
    string to_address = 5;
    // Amount to send in wei (256-bit number)
    bytes amount = 6;
    // Optional payload
    bytes payload = 7;
    // Private key.
    bytes private_key = 8;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
    bytes v = 2;
    bytes r = 3;
    bytes s = 4;
}
syntax = "proto3";
package TW.Semux.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    bytes private_key = 1;
    string destination = 2;
    uint64 value = 3;
    uint64 fee = 4;
    // current latest transaction serial number
    uint64 nonce = 5;
    // current timestamp in millisecond
    uint64 timestamp = 6;
}
// Transaction signing output.
message SigningOutput {
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Aion.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Nonce (256-bit number)
    bytes nonce = 1;
    // Gas price (256-bit number)
    bytes gas_price = 2;
    // Gas limit (256-bit number)
    bytes gas_limit = 3;
    // Recipient's address.
    string to_address = 4;
    // Amount to send in wei (256-bit number)
    bytes amount = 5;
    // Optional payload
    bytes payload = 6;
    // Private key.
    bytes private_key = 7;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
    // Signature.
    bytes signature = 2;
}
syntax = "proto3";
package TW.Cosmos.Proto;
option java_package = "wallet.core.jni.proto";
// Amount
message Amount {
    string denom = 1;
    int64 amount = 2;
}
// Fee
message Fee {
    repeated Amount amounts = 1;
    uint64 gas = 2;
}
// Message for sending coins.
message SendCoinsMessage {
    string from_address = 1;
    string to_address = 2;
    repeated Amount amounts = 3;
    // default is cosmos-sdk/MsgSend
    string type_prefix = 4;
}
// Message for staking.
message StakeMessage {
    string delegator_address = 1;
    string validator_address = 2;
    Amount amount = 3;
    // cosmos-sdk/MsgDelegate to stake and cosmos-sdk/MsgUndelegate to unstake
    string type_prefix = 4;
}
// Message for staking.
message WithdrawStakeRewardMessage {
    string delegator_address = 1;
    string validator_address = 2;
    // default is cosmos-sdk/MsgWithdrawDelegationReward
    string type_prefix = 3;
}
// Signature
message Signature {
    bytes public_key = 1;
    bytes signature = 2;
}
// Transaction
message Transaction {
    Fee fee = 1;
    string memo = 2;
    Signature signature = 3;
    oneof message_oneof {
        SendCoinsMessage send_coins_message = 4;
        StakeMessage stake_message = 5;
        StakeMessage unstake_message = 6;
        WithdrawStakeRewardMessage withdraw_stake_reward_message = 7;
    }
}
// Input data necessary to create a signed order.
message SigningInput {
    uint64 account_number = 1;
    string chain_id = 2;
    Fee fee = 3;
    string memo = 4;
    uint64 sequence = 5; 
    bytes private_key = 6;
    oneof message_oneof {
        SendCoinsMessage send_coins_message = 7;
        StakeMessage stake_message = 8;
        StakeMessage unstake_message = 9;
        WithdrawStakeRewardMessage withdraw_stake_reward_message = 10;
    }
    // default is cosmos-sdk/MsgSend
    string type_prefix = 11;
}
// Transaction signing output.
message SigningOutput {
    // Signature
    bytes signature = 1;
    // Signed transaction in JSON.
    string json = 2;
}
syntax = "proto3";
package TW.ARK.Proto;
option java_package = "wallet.core.jni.proto";
enum TransactionType {
    Transfer = 0;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    // Transaction type
    TransactionType type = 1;
    // Amount to send
    uint64 amount = 2;
    // Fee
    uint64 fee = 3;
    // Recipient's address.
    string to_address = 4;
    // Timestamp
    uint32 timestamp = 5;
    // Private key.
    bytes private_key = 6;
}
message SigningOutput {
    // JSON-encoded transaction parameters.
    string encoded = 1;
    // Signature.
    bytes signature = 2;
}
syntax = "proto3";
package TW.IoTeX.Proto;
option java_package = "wallet.core.jni.proto";
message Transfer {
    string amount  = 1;
    string recipient = 2;
    bytes payload  = 3;
}
message Execution {
    string amount  = 1;
    string contract = 2;
    bytes data = 3;
}
message ActionCore {
    uint32 version = 1;
    uint64 nonce = 2;
    uint64 gasLimit = 3;
    string gasPrice = 4;
    oneof action {
        Transfer transfer = 10;
        Execution execution = 12;
  }
}
message Action {
    ActionCore core = 1;
    bytes senderPubKey = 2;
    bytes signature = 3;
}
// transaction signing input
message SigningInput {
    uint32 version = 1;
    uint64 nonce = 2;
    uint64 gasLimit = 3;
    string gasPrice = 4;
    bytes privateKey = 5;
    oneof action {
        Transfer transfer = 10;
        Execution execution = 12;
  }
}
// transaction signing output
message SigningOutput {
    // Signed and encoded Action bytes
    bytes encoded = 1;
    // Signed Action hash
    bytes hash = 2;
}
syntax = "proto3";
package TW.Bitcoin.Proto;
option java_package = "wallet.core.jni.proto";
message Transaction {
    // Transaction data format version.
    sint32 version = 1;
    // The block number or timestamp at which this transaction is unlocked.
    uint32 lockTime = 2;
    // A list of 1 or more transaction inputs or sources for coins.
    repeated TransactionInput inputs = 3;
    // A list of 1 or more transaction outputs or destinations for coins
    repeated TransactionOutput outputs = 4;
}
// Bitcoin transaction input.
message TransactionInput {
    // Reference to the previous transaction's output.
    OutPoint previousOutput = 1;
    // Transaction version as defined by the sender.
    uint32 sequence = 2;
    // Computational script for confirming transaction authorization.
    bytes script = 3;
}
// Bitcoin transaction out-point reference.
message OutPoint {
    // The hash of the referenced transaction.
    bytes hash = 1;
    // The index of the specific output in the transaction.
    uint32 index = 2;
    // Transaction version as defined by the sender.
    uint32 sequence = 3;
}
// Bitcoin transaction output.
message TransactionOutput {
    // Transaction amount.
    int64 value = 1;
    // Usually contains the public key as a Bitcoin script setting up conditions to claim this output.
    bytes script = 2;
}
message UnspentTransaction {
    OutPoint out_point = 1;
    bytes script = 2;
    int64 amount = 3;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    // Hash type to use when signing.
    uint32 hash_type = 1;
    // Amount to send.
    int64 amount = 2;
    // Transaction fee per byte.
    int64 byte_fee = 3;
    // Recipient's address.
    string to_address = 4;
    // Change address.
    string change_address = 5;
    // Available private keys.
    repeated bytes private_key = 10;
    // Available redeem scripts indexed by script hash.
    map<string, bytes> scripts = 11;
    // Available unspent transaction outputs.
    repeated UnspentTransaction utxo = 12;
    // If sending max amount.
    bool use_max_amount = 13;
    // Coin type (forks).
    uint32 coin_type = 14;
}
// Describes a preliminary transaction plan.
message TransactionPlan {
    // Amount to be received at the other end.
    int64 amount = 1;
    // Maximum available amount.
    int64 available_amount = 2;
    // Estimated transaction fee.
    int64 fee = 3;
    // Change.
    int64 change = 4;
    // Selected unspent transaction outputs.
    repeated UnspentTransaction utxos = 5;
};
// Transaction signing output.
message SigningOutput {
    // Resulting transaction. Note that the amount may be different than the requested amount to account for fees and available funds.
    Transaction transaction = 1;
    // Signed and encoded transaction bytes.
    bytes encoded = 2;
    // Total transaction fees.
    int64 fee = 3;
    // Maximum spendable amount.
    int64 max_amount = 4;
    // Transaction id
    string transaction_id = 5;
}
syntax = "proto3";
package TW.Decred.Proto;
option java_package = "wallet.core.jni.proto";
import "Bitcoin.proto";
message Transaction {
    /// Serialization format
    uint32 serializeType = 1;
    /// Transaction data format version
    uint32 version = 2;
    // A list of 1 or more transaction inputs or sources for coins.
    repeated TransactionInput inputs = 3;
    // A list of 1 or more transaction outputs or destinations for coins
    repeated TransactionOutput outputs = 4;
    /// The time when a transaction can be spent (usually zero, in which case it has no effect).
    uint32 lockTime = 5;
    /// The block height at which the transaction expires and is no longer valid.
    uint32 expiry = 6;
}
// Decred transaction input.
message TransactionInput {
    // Reference to the previous transaction's output.
    Bitcoin.Proto.OutPoint previousOutput = 1;
    // Transaction version as defined by the sender.
    uint32 sequence = 2;
	int64 valueIn = 3;
	uint32 blockHeight = 4;
	uint32 blockIndex = 5;
    // Computational script for confirming transaction authorization.
    bytes script = 6;
}
// Decred transaction output.
message TransactionOutput {
    // Transaction amount.
    int64 value = 1;
    /// Transaction output version.
    uint32 version = 2;
    // Usually contains the public key as a Decred script setting up conditions to claim this output.
    bytes script = 3;
}
// Transaction signing output.
message SigningOutput {
    // Resulting transaction. Note that the amount may be different than the requested amount to account for fees and available funds.
    Transaction transaction = 1;
    // Signed and encoded transaction bytes.
    bytes encoded = 2;
    // Total transaction fees.
    int64 fee = 3;
    // Maximum spendable amount.
    int64 max_amount = 4;
    // Transaction id
    string transaction_id = 5;
}
syntax = "proto3";
package TW.Zilliqa.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Transaction version
    uint32 version         = 1;
    // Nonce
    uint64 nonce           = 2;
    // Recipient's address.
    string to_address      = 3;
    // Amount to send (256-bit number)
    bytes amount           = 4;
    // GasPrice (256-bit number)
    bytes gas_price        = 5;
    // GasLimit
    uint64 gas_limit        = 6;
    // Private Key
    bytes private_key      = 7;
    // Smart contract code
    bytes code             = 10;
    // String-ified JSON object specifying the transition parameter
    bytes data             = 11;
}
// Transaction signing output.
message SigningOutput {
    // Signed signature bytes.
    bytes signature = 1;
}
syntax = "proto3";
package TW.Solana.Proto;
option java_package = "wallet.core.jni.proto";
message Transfer {
    bytes private_key = 1;
    string recipient = 2;
    uint64 value = 3;
}
message Stake {
    bytes from_private_key = 1;
    bytes stake_private_key = 2;
    string vote_pubkey = 3;
    uint64 value = 4;
}
message DeactivateStake {
    // The stake account private key
    bytes private_key = 1;
    string vote_pubkey = 2;
}
message WithdrawStake {
    // The stake account private key
    bytes private_key = 1;
    string recipient = 2;
    uint64 value = 3;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    oneof transaction_type {
        Transfer transfer_transaction = 1;
        Stake stake_transaction = 2;
        DeactivateStake deactivate_stake_transaction = 3;
        WithdrawStake withdraw_transaction = 4;
    }
    string recent_blockhash = 5;
}
// Transaction signing output.
message SigningOutput {
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Ontology.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    string contract = 1;
    string method = 2;
    bytes owner_private_key = 3;
    // base58 encode address string (160-bit number)
    string to_address = 4;
    uint64 amount = 5;
    bytes payer_private_key = 6;
    uint64 gas_price = 7;
    uint64 gas_limit = 8;
    // base58 encode address string (160-bit number)
    string query_address = 9;
    uint32 nonce = 10;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Stellar.Proto;
option java_package = "wallet.core.jni.proto";
message MemoVoid {
}
message MemoText {
    string text = 1;
}
message MemoId {
    int64 id = 1;
}
message MemoHash {
    bytes hash = 1;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    int64 amount = 1;
    int32 fee = 2;
    int64 sequence = 3;
    string account = 4;
    string destination = 5;
    // Private key.
    bytes private_key = 6;
    oneof memo_type_oneof {
        MemoVoid memo_void = 7;
        MemoText memo_text = 8;
        MemoId memo_id = 9;
        MemoHash memo_hash = 10;
        MemoHash memo_return_hash = 11;
    }
    enum OperationType {
        CREATE_ACCOUNT = 0;
        PAYMENT = 1;
    }
    OperationType operation_type = 12;
    string passphrase = 13;
}
// Transaction signing output.
message SigningOutput {
    // Signature.
    string signature = 1;
}
syntax = "proto3";
package TW.Waves.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    int64 amount = 1;
    string asset = 2;
    // minimum 0.001 Waves (100000 Wavelets) for now
    int64 fee = 3;
    string fee_asset = 4;
    string to = 5;
    // any 140 bytes payload, will be displayed to the client as utf-8 string
    bytes attachment = 6;
    // in millis
    int64 timestamp = 7;
    bytes private_key = 8;
}
// Transaction signing output.
message SigningOutput {
    bytes signature = 1;
    string json = 2;
}
syntax = "proto3";
import "google/protobuf/any.proto";
package TW.Proto;
option java_package = "wallet.core.jni.proto";
// Result type.
message Result {
    // Whether the operation was successful.
    bool success = 1;
    // Optional error message, only present if success is false.
    string error = 2;
    // Result objects, if any.
    repeated google.protobuf.Any objects = 3;
}
syntax = "proto3";
package TW.Ripple.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    int64 amount = 1;
    int64 fee = 2;
    int32 sequence = 3;
    int32 last_ledger_sequence = 4;
    string account = 5;
    string destination = 6;
    int64 destination_tag = 7;
    int64 flags = 8;
    bytes private_key = 9;
}
// Transaction signing output.
message SigningOutput {
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Binance.Proto;
option java_package = "wallet.core.jni.proto";
message Transaction {
    // int64 SIZE-OF-ENCODED      // varint encoded length of the structure after encoding
    // 0xF0625DEE                  // prefix
    repeated bytes msgs = 1;       // array of size 1, containing the transaction message, which are one of the transaction type below
    repeated bytes signatures = 2; // array of size 1, containing the standard signature structure of the transaction sender
    string memo = 3;               // a short sentence of remark for the transaction, only for `Transfer` transactions.
    int64 source = 4;              // an identifier for tools triggerring this transaction, set to zero if unwilling to disclose.
    bytes data = 5;                // reserved for future use
}
message Signature {
    message PubKey {
        // 0xEB5AE987          // prefix
        // bytes               // public key bytes
    }
    bytes pub_key = 1;         // public key bytes of the signer address
    bytes signature = 2;       // signature bytes, please check chain access section for signature generation
    int64 account_number = 3;  // another identifier of signer, which can be read from chain by account REST API or RPC
    int64 sequence = 4;        // sequence number for the next transaction
}
message TradeOrder {
    // 0xCE6DC043           // prefix
    bytes sender = 1;       // originating address
    string id = 2;          // order id, optional
    string symbol = 3;      // symbol for trading pair in full name of the tokens
    int64 ordertype = 4;    // only accept 2 for now, meaning limit order
    int64 side = 5;         // 1 for buy and 2 fory sell
    int64 price = 6;        // price of the order, which is the real price multiplied by 1e8 (10^8) and rounded to integer
    int64 quantity = 7;     // quantity of the order, which is the real price multiplied by 1e8 (10^8) and rounded to integer
    int64 timeinforce = 8;  // 1 for Good Till Expire(GTE) order and 3 for Immediate Or Cancel (IOC)
}
message CancelTradeOrder {
    // 0x166E681B      // prefix
    bytes sender = 1;  // originating address
    string symbol = 2; // symbol for trading pair in full name of the tokens
    string refid = 3;  // order id to cancel
}
message SendOrder {
    // 0x2A2C87FA
    message Token {
        string denom = 1;
        int64 amount = 2;
    }
    message Input {
        bytes address = 1;
        repeated Token coins = 2;
    }
    message Output {
        bytes address = 1;
        repeated Token coins = 2;
    }
    repeated Input inputs = 1;
    repeated Output outputs = 2;
}
message TokenFreezeOrder {
    // 0xE774B32D      // prefix
    bytes from = 1;    // owner address
    string symbol = 2; // token symbol, in full name with "-" suffix
    int64 amount = 3;  // amount of token to freeze
}
message TokenUnfreezeOrder {
    // 0x6515FF0D      // prefix
    bytes from = 1;    // owner address
    string symbol = 2; // token symbol, in full name with "-" suffix
    int64 amount = 3;  // amount of token to unfreeze
}
message HTLTOrder {
    // 0xB33F9A24      // prefix
    bytes from = 1;    // signer address
    bytes to = 2;    // recipient address
    string recipient_other_chain = 3;
    string sender_other_chain = 4;
    bytes random_number_hash = 5; //hash of a random number and timestamp, based on SHA256
    int64 timestamp = 6;
    repeated SendOrder.Token amount = 7;
    string expected_income = 8; // expected gained token on the other chain
    int64 height_span = 9;
    bool cross_chain = 10;
}
message DepositHTLTOrder {
    // 0xB33F9A24      // prefix
    bytes from = 1;    // signer address
    repeated SendOrder.Token amount = 2;
    bytes swap_id = 3;
}
message ClaimHTLOrder {
    // 0xC1665300      // prefix
    bytes from = 1;    // signer address
    bytes swap_id = 2;
    bytes random_number = 3;
}
message RefundHTLTOrder {
    // 0x3454A27C      // prefix
    bytes from = 1;    // signer address
    bytes swap_id = 2;
}
// Input data necessary to create a signed order.
message SigningInput {
    string chain_id = 1;
    int64 account_number = 2;
    int64 sequence = 3;
    int64 source = 4;
    string memo = 5;
    bytes private_key = 6;
    oneof order_oneof {
        TradeOrder trade_order = 8;
        CancelTradeOrder cancel_trade_order = 9;
        SendOrder send_order = 10;
        TokenFreezeOrder freeze_order = 11;
        TokenUnfreezeOrder unfreeze_order = 12;
        HTLTOrder htlt_order = 13;
        DepositHTLTOrder depositHTLT_order = 14;
        ClaimHTLOrder claimHTLT_order = 15;
        RefundHTLTOrder refundHTLT_order = 16;
    }
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Icon.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Sender address.
    string from_address = 1;
    // Recipient address.
    string to_address = 2;
    // Transfer amount.
    bytes value = 3;
    // The amount of step to send with the transaction.
    bytes step_limit = 4;
    // UNIX epoch time (from 1970.1.1 00:00:00) in microseconds
    int64 timestamp = 5;
    // Integer value increased by request to avoid replay attacks.
    bytes nonce = 6;
    // Network identifier
    bytes network_id = 7;
    // Private key.
    bytes private_key = 8;
}
// Transaction signing output.
message SigningOutput {
    // JSON-encoded transaction parameters.
    string encoded = 1;
    // Signature.
    bytes signature = 2;
}
syntax = "proto3";
package TW.VeChain.Proto;
option java_package = "wallet.core.jni.proto";
message Clause {
    /// Recipient address.
    string to = 1;
    /// Transaction amount.
    bytes value = 2;
    /// Payload data.
    bytes data = 3;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    /// Last byte of the genesis block ID which is used to identify a blockchain to prevent the cross-chain replay attack.
    uint32 chain_tag = 1;
    /// Reference to a specific block.
    uint64 block_ref = 2;
    /// How long, in terms of the number of blocks, the transaction will be allowed to be mined in VeChainThor.
    uint32 expiration = 3;
    /// An array of Clause objects.
    ///
    /// Each clause contains fields To, Value and Data to enable a single transaction to carry multiple tasks issued
    /// by the transaction sender.
    repeated Clause clauses = 4;
    /// Coefficient used to calculate the gas price for the transaction.
    uint32 gas_price_coef = 5;
    /// Maximum amount of gas allowed to pay for the transaction.
    uint64 gas = 6;
    /// ID of the transaction on which the current transaction depends.
    bytes depends_on = 7;
    /// Number set by user.
    uint64 nonce = 8;
    // Private key.
    bytes private_key = 9;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
    // Signature.
    bytes signature = 2;
}
syntax = "proto3";
package TW.Tezos.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed Tezos transaction.
// Next field: 3
message SigningInput {
  OperationList operation_list = 1;
  bytes private_key = 2;
}
// Transaction signing output.
// Next field: 2
message SigningOutput {
  bytes signed_bytes = 1;
}
// A list of operations and a branch.
// Next field: 3
message OperationList {
  string branch = 1;
  repeated Operation operations = 2;
}
// An operation that can be applied to the Tezos blockchain.
// Next field: 12
message Operation {
  int64 counter = 1;
  string source = 2;
  int64 fee = 3;
  int64 gas_limit = 4;
  int64 storage_limit = 5;
  enum OperationKind {
    // Note: Proto3 semantics require a zero value.
    ENDORSEMENT = 0;
    REVEAL = 7;
    TRANSACTION = 8;
    ORIGINATION = 9;
    DELEGATION = 10;
  }
  OperationKind kind = 7;
  // Operation specific data depending on the type of the operation.
  oneof operation_data {
    RevealOperationData reveal_operation_data = 8;
    TransactionOperationData transaction_operation_data = 9;
    OriginationOperationData origination_operation_data = 10;
    DelegationOperationData delegation_operation_data = 11;
  }
}
// Transaction operation specific data.
// Next field: 3
message TransactionOperationData {
  string destination = 1;
  int64 amount = 2;
}
// Reveal operation specific data.
// Next field: 2
message RevealOperationData {
  bytes public_key = 1;
}
// Origination operation specific data.
// Next field: 3
message OriginationOperationData {
  string manager_pubkey = 1;
  int64 balance = 2;
}
// Delegation operation specific data.
// Next field: 2
message DelegationOperationData {
  string delegate = 1;
}
syntax = "proto3";
package TW.Any.Proto;
option java_package = "wallet.core.jni.proto";
message SigningInput {
    // BIP44 network ID
    uint32 coin_type   = 1;
    // JSON transaction
    string transaction = 2;
    // Private Key in HEX format
    string  private_key = 3;
}
message SigningOutput {
    message Error {
        // Error code
        uint32 code        = 1;
        // Error description
        string description = 2;
    }
    oneof result {
        Error error = 1;
        bool success = 2;
    }
    string output = 4;
}
syntax = "proto3";
package TW.Nebulas.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // sender's address.
    string from_address = 1;
    // Chain identifier (256-bit number)
    bytes chain_id = 2;
    // Nonce (256-bit number)
    bytes nonce = 3;
    // Gas price (256-bit number)
    bytes gas_price = 4;
    
    // Gas limit (256-bit number)
    bytes gas_limit = 5;
    // Recipient's address.
    string to_address = 6;
    // Amount to send in wei, 1 NAS = 10^18 Wei (256-bit number)
    bytes amount = 7;
    // Timestamp to create transaction (256-bit number)
    bytes timestamp = 8;
    // Optional payload
    string payload = 9;
    // Private key.
    bytes private_key = 10;
}
// Transaction signing output.
message SigningOutput {
    uint32 algorithm = 1;
    bytes signature = 2;
    string raw = 3;
}
//
message Data {
    string type = 1;
    bytes payload = 2;
}
// Raw transaction data
message RawTransaction {
    bytes hash  = 1;
    bytes from = 2;
    bytes to = 3;
    bytes value = 4;
    uint64 nonce = 5;
    int64 timestamp = 6;
    Data data = 7;
    uint32 chain_id = 8;
    bytes gas_price = 9;
    bytes gas_limit = 10;
    uint32 alg = 11;
    bytes sign = 12;
}
syntax = "proto3";
package TW.Bravo.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Chain id (256-bit number)
    bytes chain_id = 1;
    // Sender's username
    string sender = 2;
    // Recipient's username
    string recipient = 3;
    // Amount in "BRAVO" or "TEST"
    double amount = 4;
    // Whether the transaction is for testnet
    bool testnet = 5;
    // Memo to attach to the transaction
    string memo = 6;
    // Reference Block Id (160-bits)
    bytes reference_block_id = 7;
    // Timestamp on the reference block
    sfixed32 reference_block_time = 8;
    // Sender's private key's raw bytes
    bytes private_key = 9;
}
// Transaction signing output.
message SigningOutput {
    // JSON of the signed transaction.
    string json_encoded = 1;
}
syntax = "proto3";
package TW.Tron.Proto;
option java_package = "wallet.core.jni.proto";
message TransferContract {
    // Sender address.
    string owner_address = 1;
    // Recipient address.
    string to_address = 2;
    // Amount to send.
    int64 amount = 3;
}
message TransferAssetContract {
    // Asset name.
    string asset_name = 1;
    // Sender address.
    string owner_address = 2;
    // Recipient address.
    string to_address = 3;
    // Amount to send.
    int64 amount = 4;
}
message FreezeBalanceContract {
    // Sender address.
    string owner_address = 1;
    // Frozen balance. Minimum 1
    int64 frozen_balance = 2;
    // Frozen duration
    int64 frozen_duration = 3;
    // Resource type: BANDWIDTH | ENERGY
    string resource = 10;
    // Receiver address
    string receiver_address = 15;
}
message UnfreezeBalanceContract {
    // Sender address
    string owner_address = 1;
    // Resource type: BANDWIDTH | ENERGY
    string resource = 10;
    // Receiver address
    string receiver_address = 15;
}
message UnfreezeAssetContract {
    // Sender address
    string owner_address = 1;
}
message VoteAssetContract {
    // Sender address
    string owner_address = 1;
    // Vote addresses
    repeated string vote_address = 2;
    bool support = 3;
    int32 count = 5;
}
message VoteWitnessContract {
    message Vote {
        string vote_address = 1;
        int64 vote_count = 2;
    }
    string owner_address = 1;
    repeated Vote votes = 2;
    bool support = 3;
}
message WithdrawBalanceContract {
    // Sender address
    string owner_address = 1;
}
message TriggerSmartContract {
    string owner_address = 1;
    string contract_address = 2;
    int64 call_value = 3;
    bytes data = 4;
    int64 call_token_value = 5;
    int64 token_id = 6;
}
message BlockHeader {
    int64 timestamp = 1;
    bytes tx_trie_root = 2;
    bytes parent_hash = 3;
    int64 number = 7;
    bytes witness_address = 9;
    int32 version = 10;
}
message Transaction {
    // Transaction timestamp in milliseconds.
    int64 timestamp = 1;
    // Transaction expiration time in milliseconds.
    int64 expiration = 2;
    // Transaction block header.
    BlockHeader block_header = 3;
    // Transaction fee limit
    int64 fee_limit = 4;
    // Contract.
    oneof contract_oneof {
        TransferContract transfer = 10;
        TransferAssetContract transfer_asset = 11;
        FreezeBalanceContract freeze_balance = 12;
        UnfreezeBalanceContract unfreeze_balance = 13;
        UnfreezeAssetContract unfreeze_asset = 14;
        WithdrawBalanceContract withdraw_balance = 15;
        VoteAssetContract vote_asset = 16;
        VoteWitnessContract vote_witness = 17;
        TriggerSmartContract trigger_smart_contract = 18;
    }
}
message SigningInput {
    // Transaction.
    Transaction transaction = 1;
    // Private key.
    bytes private_key = 2;
}
// Transaction signing output.
message SigningOutput {
    // Transaction identifier.
    bytes id = 1;
    // Signature.
    bytes signature = 2;
    bytes ref_block_bytes = 3;
    bytes ref_block_hash = 4;
}
syntax = "proto3";
package TW.Theta.Proto;
option java_package = "wallet.core.jni.proto";
/// Input data necessary to create a signed transaction
message SigningInput {
    /// Chain ID string, mainnet, testnet and privatenet
    string chain_id = 1;
    /// Recipient address
    string to_address = 2;
    /// Theta token amount to send in wei (256-bit number)
    bytes theta_amount = 3;
    /// TFuel token amount to send in wei (256-bit number)
    bytes tfuel_amount = 4;
    /// Sequence number of the transaction for the sender address
    uint64 sequence = 5;
    /// Fee amount in TFuel wei for the transaction (256-bit number)
    bytes fee = 6;
    /// Private key
    bytes private_key = 7;
}
/// Transaction signing output
message SigningOutput {
    /// Signed and encoded transaction bytes
    bytes encoded = 1;
    /// Signature
    bytes signature = 2;
}
syntax = "proto3";
package TW.Aeternity.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Address of the sender with "ak_" prefix
    string from_address = 1;
    // Address of the recipient with "ak_" prefix
    string to_address = 2;
    bytes amount = 3;
    bytes fee = 4;
    // Message, optional
    string payload = 5;
    // Time to live until block height
    uint64 ttl = 6;
    uint64 nonce = 7;
    bytes private_key = 8;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes, Base64 with checksum
    string encoded = 1;
    // Signature, Base58 with checksum
    string signature = 2;
}
syntax = "proto3";
package TW.Nimiq.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    bytes private_key = 1;
    string destination = 2;
    uint64 value = 3;
    uint64 fee = 4;
    uint32 validity_start_height = 5;
}
// Transaction signing output.
message SigningOutput {
    bytes encoded = 1;
}
syntax = "proto3";
package TW.Harmony.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Chain identifier (256-bit number)
    bytes chain_id = 1;
    // Nonce (256-bit number)
    bytes nonce = 2;
    // Gas price (256-bit number)
    bytes gas_price = 3;
    // Gas limit (256-bit number)
    bytes gas_limit = 4;
    // Recipient's address.
    string to_address = 5;
    // Amount to send in wei (256-bit number)
    bytes amount = 6;
    // Optional payload
    bytes payload = 7;
    // Private key.
    bytes private_key = 8;
    // From shard ID (256-bit number)
    bytes from_shard_id = 9;
    // To Shard ID (256-bit number)
    bytes to_shard_id = 10;
}
// Transaction signing output.
message SigningOutput {
    // Signed and encoded transaction bytes.
    bytes encoded = 1;
    bytes v = 2;
    bytes r = 3;
    bytes s = 4;
}
syntax = "proto3";
package TW.EOS.Proto;
option java_package = "wallet.core.jni.proto";
enum KeyType {
    LEGACY = 0;
    MODERNK1 = 1;
    MODERNR1 = 2;
}
// Values for an Asset object.
message Asset {
    int64 amount = 1;
    uint32 decimals = 2;
    string symbol = 3;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    // Chain id (256-bit number)
    bytes chain_id = 1;
    // Reference Block Id (256-bits)
    bytes reference_block_id = 2;
    // Timestamp on the reference block
    sfixed32 reference_block_time = 3;
    
    // Currency (e.g. "eosio.token")
    string currency = 4;
    // Sender's username
    string sender = 5;
    // Recipient's username
    string recipient = 6;
    // Memo attached to the transaction
    string memo = 7;
    // Asset details and amount
    Asset asset = 8;
    // Sender's private key's raw bytes
    bytes private_key = 9;
    // Type of the private key
    KeyType private_key_type = 10;
}
// Transaction signing output.
message SigningOutput {
    // JSON of the packed transaction.
    string json_encoded = 1;
}
syntax = "proto3";
package TW.Nano.Proto;
option java_package = "wallet.core.jni.proto";
// Input data necessary to create a signed transaction.
message SigningInput {
    // Private key
    bytes private_key = 1;
    // Optional parent block hash
    bytes parent_block = 2;
    oneof link_oneof {
        // Hash of a block to receive from
        bytes link_block = 3;
        // Recipient address to send coins to
        string link_recipient = 4;
    }
    // Representative address
    string representative = 5;
    // Account balance (128-bit unsigned integer, as a string)
    string balance = 6;
}
// Transaction signing output.
message SigningOutput {
    // Signature
    bytes signature = 1;
    // Block hash
    bytes block_hash = 2;
}
syntax = "proto3";
package TW.IOST.Proto;
option java_package = "wallet.core.jni.proto";
// The message defines transaction action struct.
message Action {
    // contract name
    string contract = 1;
    // action name
    string action_name = 2;
    // data
    string data = 3;
}
// The message defines transaction amount limit struct.
message AmountLimit {
    // token name
    string token = 1;
    // limit value
    string value = 2;
}
// The enumeration defines the signature algorithm.
enum Algorithm {
    // unknown
    UNKNOWN = 0;
    // secp256k1
    SECP256K1 = 1;
    // ed25519
    ED25519 = 2;
}
// The message defines signature struct.
message Signature {
    // signature algorithm
    Algorithm algorithm = 1;
    // signature bytes
    bytes signature = 2;
    // public key
    bytes public_key = 3;
}
// The message defines the transaction request.
message Transaction {
    // transaction timestamp
    int64 time = 1;
    // expiration timestamp
    int64 expiration = 2;
    // gas price
    double gas_ratio = 3;
    // gas limit
    double gas_limit = 4;
    // delay nanoseconds
    int64 delay = 5;
    // chain id
    uint32 chain_id = 6;
    // action list
    repeated Action actions = 7;
    // amount limit
    repeated AmountLimit amount_limit = 8;
    // signer list
    repeated string signers = 9;
    // signatures of signers
    repeated Signature signatures = 10;
    // publisher
    string publisher = 11;
    // signatures of publisher
    repeated Signature publisher_sigs = 12;
}
message AccountInfo {
    string name = 1;
    bytes active_key = 2;
    bytes owner_key = 3;
}
// Input data necessary to create a signed transaction.
message SigningInput {
    AccountInfo account = 1;
    Transaction transaction_template = 2;
    string transfer_destination = 3;
    string transfer_amount = 4;
    string transfer_memo = 5;
}
// Transaction signing output.
message SigningOutput {
    // Signed transaction
    Transaction transaction = 1;
}