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

Unlock new horizons by creating cross-chain dApps across public and private blockchains with ready-to-use templates

Plug and play blockchain interoperability solution for enterprises, web3 protocols and fintech with privacy at the core.
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 data leaks
and legal risks

High Speed
Low Cost

Thanks to our unique on-chain validation-based protocol architecture, we do not need to maintain a complex economic system to achieve consensus. As a result, all cross-chain transactions 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

Easy to build with
plug and play modules

Launch in-demand cross-chain solutions in a few simple steps, choosing from popular core modules:
  • Asset bridge
  • NFT bridge
  • Native cross-chain token
  • Native cross-chain NFT
Don't waste time on development or partnership negotiations with major bridges - launch your own solutions with built-in enterprise-grade security based on-chain validation with blockchain cryptography and easily customizable off-chain layer.

Chains supported

Be blockchain-agnostic.
Take advantage of multiple blockchains

CBDCs & Fintech

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

Social communications

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

Manage liquidity in multiple chains

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

Cross-chain DAO

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

Cross-chain farming strategies

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

Cross-chain GameFi & NFT

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

How it works

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

An on-chain module verifies the validity and integrity of transactions using blockchain cryptography.

An off-chain module comprising two independent entities for transmitting data (payload) on the Client server side and transaction proofs on the Relayer server side.

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 receives the cross-chain transaction payload and calls initAsterizmTransfer() on the client’s smart contract in the source network to continue the cross-chain transaction.

Step 4

Before sending transaction proofs (hash and xID) to the Initializer contract, the Сlient’s smart contract performs a validity and integrity check of the transaction by comparing the hash, which is calculated based on the payload. Note: This effectively mitigates the risk of spam and counterfeit transactions in the event of a compromise of the Client server.

Step 5

The Initializer smart contract verifies the transaction nonce to maintain the sequence of cross-chain transaction execution and sends the transaction proofs (hash and xID) along with unique parameters to the Translator 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 proofs with the parameters from the Translator contract and send them to the Translator smart contract in the destination network for further processing.

Step 7

The Translator smart contract on the destination network receives the encrypted data along with the parameters from the Relayers and then transfers it to the Initializer smart contract for validation.

Step 8

Upon receipt of the proofs and parameters, the Initializer smart contract verifies the nonce to maintain the transaction sequence, records the transaction xID for validation at step 10, and sends the proofs to the Client's smart contract.

Step 9

The client's smart contract in the destination network receives the proofs along with the parameters and emits an event to notify the delivery of proofs, which is anticipated by the Client's off-chain module. Note: At this stage, the first but not the main step of transaction validity check occurs — the hash from the payload and the transaction's xID are compared, mitigating the risk of relay server compromise.

Step 10

After the first step of cross-chain transaction validation, the client’s server initiates the transaction on the Client’s smart contract by calling the asterizmClReceive() method in the destination network, sending the payload (data) and xID to the contract, and validating the transaction on the Initializer smart contract by calculating the hash from received payload and checking the xID. 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 calculating and matching the hash from the payload with the hash received from Relayers 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

Once confirmation of the cross-chain transaction's validity and integrity is received, the client's smart contract proceeds to execute the payload that was included in the cross-chain transaction, calling methods of other contracts or performing calculations on the client’s contract. The logic of this step depends entirely on the client's business logic, which is implemented as part of the cross-chain transaction.

Go cross-chain in 3 easy steps

Deploy smart contract in preferred chains

Build smart contracts with your cross-chain logic extending the Asterizm contract abstraction. You can also configure the receipt of message delivery notifications in the destination network, as well as a relay service that will transmit transaction proofs.

Set up the off-chain module

Implement the Client module (Docker image) on your server to securely transmit data and have the ability to halt cross-chain transaction execution in case of an emergency.

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