Davinci Protocol
Block ExplorerValidator Explorer
  • Welcome
  • Learn
    • Execution Layer
    • Proof Of Stake Mechanism
    • Validator Mechanism
    • Staking Mechanism
  • Technical Network
    • Mainnet
    • Accounts
    • Transaction
    • Onchain Gas Transaction
  • Developer Hub
Powered by GitBook
On this page
  1. Technical Network

Transaction

Transactions

Transactions in DaVinci Chain are digital messages that enable users to transfer assets, interact with smart contracts, and execute various operations on the blockchain. These transactions are processed, validated, and recorded on-chain to maintain network integrity.

A submitted transaction includes the following information:

  • from – the address of the sender, that will be signing the transaction. This will be an externally-owned account as contract accounts cannot send transactions

  • to – the receiving address (if an externally-owned account, the transaction will transfer value. If a contract account, the transaction will execute the contract code)

  • signature – the identifier of the sender. This is generated when the sender's private key signs the transaction and confirms the sender has authorized this transaction

  • nonce - a sequentially incrementing counter which indicates the transaction number from the account

  • value – amount of DCOIN to transfer from sender to recipient (denominated in WEI, where 1 DCOIN equals 1e+18wei)

  • input data – optional field to include arbitrary data

  • gasLimit – the maximum amount of gas units that can be consumed by the transaction. The DVM specifies the units of gas required by each computational step

  • maxPriorityFeePerGas - the maximum price of the consumed gas to be included as a tip to the validator

  • maxFeePerGas - the maximum fee per unit of gas willing to be paid for the transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas)

Gas is a reference to the computation required to process the transaction by a validator. Users have to pay a fee for this computation. The gasLimit, and maxPriorityFeePerGas determine the maximum transaction fee paid to the validator.

The transaction object will look a little like this:

{
  from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
  to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
  gasLimit: "21000",
  maxFeePerGas: "300",
  maxPriorityFeePerGas: "10",
  nonce: "0",
  value: "10000000000"
}

But a transaction object needs to be signed using the sender's private key. This proves that the transaction could only have come from the sender and was not sent fraudulently.

JSON-RPC Example

{
  "id": 2,
  "jsonrpc": "2.0",
  "method": "account_signTransaction",
  "params": [
    {
      "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",
      "gas": "0x55555",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "input": "0xabcd",
      "nonce": "0x0",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234"
    }
  ]
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
    "tx": {
      "nonce": "0x0",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "gas": "0x55555",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234",
      "input": "0xabcd",
      "v": "0x26",
      "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",
      "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
      "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e"
    }
  }
}
  • the raw is the signed transaction in Recursive Length Prefix (RLP) encoded form

  • the tx is the signed transaction in JSON form

PreviousAccountsNextOnchain Gas Transaction

Last updated 3 months ago