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
datacontains contract bytecodetofield is empty
-
Value transfers
datais emptytois set to a valid recipientvalueis a non zero amount
-
Contract calls
datais not emptytois set to a valid recipientvaluecan be either