Transactions
Transactions are the heart of any blockchain, cryptocurrency or otherwise. In Mainsail, all transactions are executed inside a EVM.
Using the ARK SDKs, developers can employ the programming language of their choice to build applications utilizing the Mainsail blockchain. The ARK SDKs are split into two packages for each language: Client and Cryptography.
Client SDKs help developers fetch information from the ARK blockchain about its current state: which validators are currently forging, what transactions are associated with a given wallet, and so on.
Cryptography SDKs, by contrast, assist developers in working with transactions: signing, serializing, deserializing, etc.
For more information about SDK implementations visit ARK SDKs hub.
Transaction Types
Unlike Core V3, Mainsail consolidates all transaction logic into a single transaction type. It handles everything from token transfer to validator registration and other arbitrary smart contract logic.
However, sometimes it can still be helpful to distinguish transactions based on their purpose:
-
Contract Deployments
data
contains contract bytecodeto
field is empty
-
Value transfers
data
is emptyto
is set to a valid recipientvalue
is a non zero amount
-
Contract calls
data
is not emptyto
is set to a valid recipientvalue
can be either