Build secure cross-chain dApp

Community Help Go to Telegram
White paper Explore White paper
Integration assistance

Contact us

Thank you!

We will get back to you shortly

Error!

Something went wrong
Integration assistance

Perform fast and confidential cross-chain transactions without overpaying

Build cross-chain dApps, while saving money on transactions, avoiding penalties from regulators and risks of data leaks.
Scroll
to explore

Why Asterizm?

Privacy

With Asterizm, you can transfer sensitive data to other networks without the risk of compromise at the Relayer level.
No more front-running and data leaks!

High Speed
Low Cost

Thanks to the encryption-based protocol architecture, we don’t maintain a complex economic system to achieve consensus. This allows all cross-chain transactions to flow almost instantly and at one of the lowest fees on the market.

Flexibility

The architecture allows to embed Asterizm Client module into any infrastructure used by the client dApp in compliance with the security policies and access levels.

Scalability

Asterizm is easily scalable — an increase in the number of transactions does not affect the stability of the protocol, the speed or the cost of transactions.
Developed for high
load systems

Your data belongs to you

Thanks to the encryption at the core of the protocol, benefit from fast and confidential cross-chain transactions while saving money on fees. No need to trust validators. Transfer sensitive data through an encrypted cross-chain channel without the risk of compromise.

Asterizm is the ideal solution for cross-chain communications in the following formats: private to private and private to public chains. Remain compliant with the latest regulatory requirements while keeping your cross-chain operations fast, cost-efficient, secure and easily scalable.

New: Venom Network integration just landed Chains supported

Be blockchain-agnostic.
Take advantage of multiple blockchains

Manage liquidity in multiple chains

Create blockchain bridges, cross-chain DEXes and other liquidity solutions across networks.

Cross-chain farming strategies

Implement effective revenue strategies by taking advantage of the best opportunities in each network.

Social communications

Unite the Web3 community — create messengers and other communication products.

Cross-chain GameFi & NFT

Create omnichain marketplaces and NFT bridges, and aggregate communities from different networks in your product.

CBDCs & Fintech

Take advantage of confidential cross-chain transactions for financial messaging and liquidity management across public and private networks.

Cross-chain DAO

Activate community members to develop the protocol regardless of the native governance network of your project.

How it works

Asterizm secures cross-chain transactions using both on-chain and off-chain modules:

An on-chain module that checks the validity and integrity of the transactions.

An off-chain module consisting of two independent entities that encrypt, decrypt and transmit the data.

Cross-chain transaction flow

Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
Step 9
Step 10
Step 11

Step 1

The client implements a smart contract using an abstract class from Asterizm and deploys it to the required networks. The _initAsterizmTransferEvent() method is used to initiate a cross-chain transaction on the contract. The data and parameters of the cross-chain transaction are transmitted to it. The transaction can contain arbitrary information and one or multiple actions (instructions) to be performed on the destination networks.

Step 2

The client smart contract sends the received data and hash based on the payload generated at that moment xID, source chain id, destination chain id, client smart contract address in the source and destination chains. Note: At this step, the key parameters are formed, which will further ensure the security of the cross-chain transaction, namely to confirm its validity and integrity in the destination chain.

Step 3

The Client off-chain module encrypts the cross-chain transaction contents and sends it back to the client’s smart contract in the source initializer network, calling the cross-chain transfer initialization method initAsterizmTransfer().

Step 4

Before sending the encrypted data received from the client off-chain module to the Initializer smart contract, the Client smart contract checks the received data using hash matching, thus preventing spam and spoofed transactions. Note: This step verifies that this exact transaction was initiated on the client's smart contract, which eliminates the possibility of spam from the client's off-chain module.

Step 5

The Initializer smart contract checks the transaction nonce to preserve the cross-chain transaction execution sequence and transmits the encrypted data with the unique parameters to the Transmitter smart contract. Note: When a data packet is received on the Initializer smart contract, the client is identified based on the destination chain id, the Client smart contract address in the destination chain, and the client smart contract address in the source chain. After the client (sender) of the cross-chain transaction is determined, the nonce value is incremented for it.

Step 6

Asterizm Relayer servers pull the encrypted data with the parameters from the Translator contract and send it to the Translator smart contract in the destination network for further processing.

Step 7

The Translator smart contract on the destination network accepts the encrypted data with the parameters from the Relayers and passes it to the Initializer smart contract for validation.

Step 8

After receiving the encrypted data and the parameters, the Initializer smart contract checks the nonce to comply with the transaction sequence, stores the transaction xID to validate the transaction at step 10, and transmits the data to the client’s smart contract.

Step 9

The client’s smart contract in the destination network receives the encrypted data with the parameters, creates an event, and transmits the data to the client’s off-chain module for verification and decryption. Note: This is where the first step of cross-chain transaction validation is performed by matching the hash from the decrypted data, original data and xID generated in the source network at the transaction initialization, and by checking the source network and address. The client’s server verifies that the data is complete and consistent, thus eliminating the risk of compromise at the Relayer server level.

Step 10

After data verification and decryption, the client’s server initiates the transaction on the client smart contract by calling the asterizmClReceive() method in the destination network, sending the decrypted data and xID to the contract, and validating the transaction on the Initializer smart contract by checking the hash. Note: At this step, the integrity of the data and the trusted addresses is checked before the transaction is executed. This check eliminates the risk of hacking the client’s server. Deep tech: The verification is performed by checking the hash from the decrypted data and the xID that was previously stored on the Initializer contract. If the verification succeeds, it means that the client’s contract executes exactly the transaction it sent, and does so for the first time. This algorithm eliminates the possibility of spamming transactions and spoofing data on the client’s server (if, for example, the server is compromised).

Step 11

After receiving the confirmation of the validity and integrity of the cross-chain transaction, the client’s smart contract executes the instructions or data sent in the cross-chain transaction, calling methods of other contracts or performing calculations on the client’s contract. The logic of this step depends solely on the client’s business logic implemented in the cross-chain transaction.

Go cross-chain in 3 easy steps

Deploy smart contract in preferred chains

Build smart contracts with cross-chain logic extending the Asterizm client interface. The encryption algorithm can be changed according to the company's security policies or requirements.

Set up the off-chain module

Implement Client module (Docker image) on your server to encrypt and decrypt messages with AES-256.

Run cross-chain operations!

Send and receive your first cross-chain message by calling the _initAsterizmTransferEvent() method on your Asterizm Client Contract

Examples

01 Claimer.sol

Cross-chain distribution of the token accumulated in the protocol to several networks with a single transaction at claim.

02 MultichainToken.sol

Distribute the emission across different networks depending on the demand for tokens in each network.

03 GasStation.sol

Top up your gas token balance in multiple chains with a single transaction.

View more code examples on GitHub

Go cross-chain!

Get started