xRum, A Multi-Blockchain User Preference Interface

Jimmy Debe
4 min readSep 11, 2023

--

Introducing a simple cross-chain user preference interface idea for Icon xCall called xRum. This article will introduce a concept for users to link details of their data preferences through the blockchain. Also, it allows cross-chain capabilities to allow dApps to access preferences from multiple blockchain networks.

Before reading this article, make sure to check out my article on tokenized reserves. This proposed EIP, Ethereum Improvement Proposal, aims to create community-based reserve funds on-chain. The introduction article helps developers and engineers understand the logic behind this new proposal to start the conversation. In the context of this article, every reserve should have a mechanism for the distribution of the underlying token held by the user. Based on the use case, there can be a few methods that can accomplish this. The idea for a user preference interface using Icon xCall can also be a great example of how to distribute the underlying token in a tokenized reserve. There will be a brief explanation at the end of this article.

Introduction, Cross Chain Interoperability

Cross-chain protocols are rising in popularity amongst developers. The projects focusing on cross-chain implementation are introducing business applications to the Web3 community have ambitious goals. There is a belief that these protocols will be used throughout different industries. The future of the internet could have millions of blockchains with different data stored on each. The need for protocols to support interoperability will continue to grow as blockchains become more popular. Side-chains, like Polygon, are projects that aim to relieve the stress of high transaction load on the main blockchain. Cross-chain token transfers are another popular use case. Protocols like ChainLink, or Cross Chain Transfer Protocol used by stablecoin USDC, are implemented across the web3 ecosystem. Accessing data from other blockchains allows dApps to be more convenient for the user.

What is ICON xCall

Icon xCall is a cross-chain interface allowing data messaging between blockchains. The currently supported chains are EVM, Ethereum Virtual Machine, like Ethereum, Binance Smart Chain, or Icon native blockchain which runs with JVM, Java Virtual Machine. The release of the xCall protocol shows growing development in cross-chain protocols.

xRum User Privacy

xRum is a concept for a cross-chain user preference interface. This simple preference mechanism allows third parties to gain access to a user’s preference when using a Web3 application. Then inform the user that their data preference was enforced during the user activity. The current specification consists of two smart contracts. The first contract called userIdentity.sol, allows users to link their preferences with a wallet address. Also allows an authorized address mint token to during user activity. The second contract called partyReader.sol, allows a data operator to access user data preferences on multiple blockchains, enforce the preference rules off-chain on the dApp, and create a token on the user’s chain that has proof preferences were enforced. The token is an NFT with a token URI attribute. The URI will store a link to details of the enforcement of preferences. Since both smart contracts are compatible with Icon xCall, dApps can access user data and give tokens to users on different blockchains.

Third-party applications use the interface like this:

The dApp can access user data preferences by calling the smart contract. The dApp has the choice to mint an NFT and link details of preference compliance. The details are not trust-less from the smart contracts, just provided by the dApp owner. The user has to trust that the data operator is being truthful with every token mint with this concept.

To give some power to the user, the userIdentity.sol contract allows the issuer to add authorized DID, Decentralized Identifier, addresses with a DID URL:

did:example:123456?versionId=1

Before a user decides which identity contract to use they can check the blockchain for which entitles are authorized to use the contract. Thanks to xCall, dApps that implement an xCall contract can access a user’s data preferences from multiple blockchains.

Tokens for Tokenized Reserve

The logic for a tokenized reserve requires a method for users to obtain the underlying token. Similar to mining on a proof of work network, the underlying token should be a reward after some activity to gain access to participate in the reserve. Good practice within a reserve should be to reward for user activity. A tokenized reserve implementation could use _mint for an ERC20 standard and use those tokens as the underlying token. The change could be made in the activityMint function in userIdentity.sol:

function activityMint(address from, address to, string memory uri) internal virtual

Future articles will explain this concept of underlying token distribution for a reserve in more detail. Reserve tokens are still in the experimental stage of discussion. Head over to the repository and make some improvements.

Conclusion

This is a simple concept for an Icon xCall idea. Cross-chain applications may see a growth in use in the future, so it is important to get familiar with protocols like xCall. If hundreds of blockchains are storing different data, it could be convenient to have applications that can access the data on each chain seamlessly.

A link to the proposal for Icon IIP is located here. Also, a reference implementation is located here. Feel free to make any changes to improve the concepts.

--

--