Solana integration logic

Description of Solana network integration logic

The Solana network has several architectural nuances:

  1. There is a limit on contract call depth (a maximum of 4 contracts in a sequential chain).

  2. When initiating a transaction, it is necessary to provide a list of all contracts being called in the chain.

  3. A rather strict transaction size limit

Due to these architectural nuances, as well as to simplify client integration, the Asterism team had to change their approach to implementing the internal structure of the protocol.

IMPORTANT! Due to the internal architecture of the Solana network and its operational logic, full integration requires modification of the basic client off-chain Asterism module. Contact us for more detailed information.

Basic protocol structure

Unlike the EVM implementation, the Solana network integration includes an additional program - the internal client program of the protocol. This program implements the logic for hashing transfer data, as well as additional internal logic. The client program must send data to this program to initiate the transfer.

The client off-chain module listens not to the client program but specifically to the internal Asterism client program, reacting only to events related to the specific client's logic.

Integration nuances

There are several aspects that distinguish Solana network integration from the integration of other types of networks:

  1. In the Solana network, the trusted address is not the client program itself, but the PDA of the client sender (see more details here)

  2. Due to transaction size limits, it is not possible to send a large amount of data to a program's function at once (e.g. setting up an NFT with a link to an image). It requires splitting the data across multiple transactions

  3. It is impossible to bypass the off-chain relay module logic when conducting a transfer within a single network due to the limitation on the depth of the call chain. Keep in mind that such transfers will, in any case, go through the off-chain relay module

  4. After deployment, more on-chain configurations are required before sending transfers (see more details here)

  5. The configuration of the client off-chain module differs from the configuration of other types of networks (see more details here). It is necessary to include all the addresses that will participate in the chain (these addresses can be found in the Testnet and Mainnet sections).

  6. Keep in mind that implementing custom logic will not be possible without the involvement of the Asterism Protocol team due to the specific characteristics of sending transactions in this network

Last updated