Skip to content

Transaction Details

Drep transactions are transfers of drep that exist within blocks. There are many types of transactions, which are ordinary transaction、creating smart contract transaction、calling smart contract transaction、vote transaction、cancel vote transaction、candidate transaction、cancel candidate transaction、 and sending alias transaction. Each transaction is tailored to one specific occasion, and the user selects the transaction type according to its own need.

Transaction Types

  • Ordinary transaction Send DREP Token from one address to another address, realizing assets transfer.。
  • Creating smart contract transaction Put contracts written in solidity language on Chain to facilitate the decentralized execution of the contract.
  • Executing smart contract transaction A new contract address is generated after the creation of smart contract; The user sends a transaction based on its own right, and can also execute the smart contract.
  • Sending alias transaction It is difficult to remember DREP address type, so the user can set an alias for its own account address. Replacing alias with address is much easier for memory and usage.

  • Vote credit transaction Vote for the candidate node so that the candidate node can be selected

  • Cancel vote Credit transaction Return the coins invested to the candidate node, no longer supports the candidate node
  • Candidate transaction Candidate nodes ready to make blocks need to send a transaction and pledge their own coins to be eligible to make block nodes
  • Cancel candidate transaction Block producers do not want to make blocks anymore, they need to revoke their pledge coins

Transaction Format

At the protocol level, all transactions share the same basic transaction format; The type of transaction is determined by the type field in the transaction. The section below describes this basic transaction format.

Below are the top-level fields of any transaction data.

Field Description Size
Version Transaction version. This number is used to signify how the transaction should be interpreted. 8 bytes
Nonce Record the number of transactions sent from one account address 1- 8 bytes
Type Transaction type 8 bytes
To The recipient of the transfer, if it is Nil, it means creating a smart contract 20 bytes
ChainId Identify different types of network IDs 4 bytes
Amount The amount of the transfer; if it is 0, it means calling the smart contract. 128 bytes
GasPrice The gas fee set for the current transaction 128 bytes
GasLimit Set the maximum amount of gas for the current transaction. During the transaction, if the gas amount exceeds this setting, the execution of transaction will fail. 128 bytes
Timestamp The system timestamp of the transaction
4 bytes
Data The data carried by the transaction, contract information is stored here when publish or call smart contract; it can be a storage space for other transactions. varary

Below are the top-level fields of any transaction other.

Field Description Size
Sig Signature information for the transaction varary
txHash The transaction hash, store this value to save computing time 20bytes
signMessage Store serialized data in transaction to save computing time varary
message Store serialized transaction data to save computing time varary
from Store the source send address to save computing time 10 bytes


The serialization and the hash calculation of transaction require a lot of CPU resources. Therefore, DREP will serialize the transaction and record the data after hash calculation in database, and it can be directly read when needed. The transaction uses drepbinary to serialize it directly to obtain a serialized value, and uses sha3.Keccak256 to get a hash value.

Example Transaction

Below we examine example from the Drep mainnet.

Raw Transaction (Hex)

Here is the raw hex data for the example transaction.