← Back to Blog

xCall Focus Testing Recap

image

July 2, 2023

TL;DR

|

Full Story

On June 15th, we successfully concluded a closed test for xCall. Five teams were selected from the ICON community to participate based on their prior contributions to the ecosystem. Testing period lasted two weeks.

Our main goals during this testing period were to stabilize the xCall product prior to a broader roll out and to identify key areas of improvement that would optimize a dApp developer’s experience with xCall.

In order to achieve these goals, each participating team created testing dApps that executed transactions between xCall-connected chains: ICON, Ethereum, BSC, and Havah. This recap outlines in detail the extensive feedback and data that we gathered from these teams after testing.

Thank you to all the teams that made the xCall focus testing a success.

Table of Contents


What is xCall: A Cross Chain Aggregator

xCall is a single standard for dApps to deploy cross chain messages across any interoperability solution available today. xCall is specifically designed to make it as easy as possible for a developer to add cross chain functionality to their dApps—with one line of code, a developer can execute messages across multiple protocols. As a result, developers can focus on building great services and leave the varying complications of executing cross chain transactions across different systems to xCall, which handles the specifics in the backend. Hence, our slogan for xCall:

“Write once, deploy everywhere”


Why xCall?

xCall is not a bridge aggregator (i.e., LiFiSocket) nor is it an interoperability protocol (i.e., BTPIBCWormhole). xCall aggregates the features of all interoperability protocols through a single interface that standardizes cross chain messaging across the different protocols. Through such standardization, xCall is able to simplify cross chain dApp development for developers and to enable developers to leverage the unique strengths of the underlying interoperability protocols.

An application of leveraging benefits of multiple interoperability protocols could be multi-protocol verification, which is sending a cross chain transaction over not one, but two or more underlying interoperability protocols to reduce risks associated with relying on just one protocol when sending assets cross chain.


xCall Focus Testing: Scope

Needless to say, we are very excited about bringing xCall to market and the focus test brought us one step closer to that goal. During the testing period, the following teams,

were tasked with creating simple testing dApps that would test the following features:

  • Single-hop

  • Multi-hop

  • Rollback

  • One-way message, one-way response

  • EVM-EVM

  • EVM-JVM

  • JVM-EVM

  • JVM-JVM

Focus testers were asked to test their dApps by submitting a variety of transaction types, the most effective way of finding bugs or other issues. Sample transaction types include the following:

  • Simple, ‘hello world’, one-way transactions

  • Transactions with partially complete data, which should be compiled on the receiving end as the full data arrives via multiple messages

    • E.g. (1) “hello w”, (2) “orld”

  • Transactions with a batch of messages

    • E.g. (1) [“hello world 1”, “hello world 2”, “hello world 3”]

Finally, testers were asked to check transactions for speed, cost, and accuracy.

Each participating team created testing dApps that executed transactions between xCall-connected chains: ICON, Ethereum, BSC, and Havah.


xCall Focus Testing: Key Results

At the end of the two-week testing period, the teams collectively produced:

  • over hundreds of test transactions

  • 10 code repositories

  • 4 team reports + one upcoming

  • 12 Github Issues, all being actively triaged

  • 5 Github Discussions

Below are links to each team’s output, reported issues, and a summary of cost and time estimates using xCall over BTP:

Code Outputs Per Team

Staky

Hugobyte

Venture23

Protokol7

Paul Rouge

Issues and Discussions

Initial cost estimates of sending messages with xCall over BTP

The following xCall transaction fees were approximated from testing by the Core Development team.

Connection

Fee in USD

Fee in ETH(wei)

ICON -> ETH2

1.329043

706937800000000

ETH2 -> ICON

0.056664

30140466117021

BSC -> ICON

0.010569

5621579869681

ICON -> BSC

2.276340

1210818997872340

HAVAH -> ICON

0.005054

2688242686170

ICON -> HAVAH

0.005054

2688242686170

If an xCall transaction includes a ‘rollback message’, which happens if there is an error on the destination chain, then the fees are expected to increase due to the secondary transaction on the source chain.

Initial time estimates of sending messages with xCall over BTP

Timing estimates for xCall using BTP depend on the time it takes for a chain to finalize a transaction.

Connection

Tx Time

ICON -> ETH2

~ 15 min

ETH2 -> ICON

~ 14 min

BSC -> ICON

~ 2 sec

ICON -> BSC

~ 2 min

ETH2 -> BSC

~ 15 min

BSC -> ETH2

~ 45 min

ICON -> HAVAH

~ 2 sec

HAVAH -> ICON

~ 2 sec


Focus testers were asked to test their dApps by submitting a variety of transaction types, the most effective way of finding bugs or other issues.

What the Teams Are Saying About xCall

Staky

“[T]hanks to this program we were able to make appropriate feedbacks to the ICON team to improve the overall experience for everyone.” - Staky on @helloiconworld

  • Positives

    • You can read the docs to find out how to use xCall. All of the steps are there

    • The team put together a demo app, which was used as the basis of this team’s dApp

  • Room for improvement

    • Some of the documentation steps require careful reading. They should be made more clear

    • The demo dApp can be a bit complicated to set up. This too should be made simpler

HugoByte

“Excited to witness xCall and its impact on the future!” - HugoByte on @helloiconworld

  • Positives

    • Enjoyed the challenging and interesting experience of testing xCall

    • Core development team was responsive and quickly fixed many of the issues raised by this team

  • Room for improvement

    • More documentation on setting up local environment for testing could have been useful

Venture23

“It felt as if I had conjured a portal to another world” - Venture23 on @helloiconworld

  • Positives

    • Deploying the dapp in a local environment was straightforward

  • Room for improvement

    • Confusing to recognize when transactions failed

    • Test examples could have better documentation

    • Long finality time of Ethereum chain means that messages involving that chain will take time to be delivered

Protokol7

“[C]ore team did an amazing job preparing docs and base demo app, equipping us with the necessary information right from the beginning” - Protokol7 on @helloiconworld

  • Positives

    • There was plenty of documentation to get started experimenting with xCall

    • Core team was highly responsive during testing

  • Room for improvement

    • It is important to have more documentation, demos, and experienced developers in this area to jumpstart the xCall ecosystem

Paul Rouge

“Now to delve into testing and exploring the intricate aspects of xCall” - Paul Rouge on @helloiconworld

  • Positives

    • Was happy to see xCall as a near completed product ready to build dApps

    • The security benefits of the rollback feature was quite interesting

  • Room for improvement

    • Difficult to understand the state of transactions, especially in the case of transaction failure

    • Easier access to testnet tokens for BSC


Takeaways and Next Steps

Based on the detailed feedback provided by each team, here are a list of priorities that we will be implementing through the triage period before launching an incentivized testnet for a broader audience:

  • Improve README in example repository setup documentations so that all setup information is available in one place

  • Improve availability of resources related to event logging of connected chains, including tutorials and improved documentations for how to create and check the status of an xCall transaction

  • Provide better resources describing the path of the transaction through xCall and through xCall + BTP, including information about timing and fees of connected networks

  • Make sure relayer status is available

  • Make docker image for relayer

  • Maximize availability of test BNB and test ETH for developers

Public xCall Incentivized Testnet: Coming Soon

A Notion page detailing guidelines and challenges for the public xCall incentivized testnet program will be released soon. The public incentivized testnet program is scheduled to launch on July 31st.

Available xCall Resources

For those who would like to experiment with xCall and create their own cross chain dApps, here is a compilation of useful guides:

Keep in mind that xCall is an evolving product. If you encounter issues during testing, you can reach out for support troubleshooting by joining the ICON’s developer community on the ICON Discord. Happy testing!