Features
Encrypted Communication

Introduction

XELIS is not only a network for transactions, but also a network for data storage and computation. The data stored on the blockchain is encrypted and can be shared with other users or kept private.

On XELIS, you can share encrypted information with other users by integrating it in a transaction. This allows to have powerful services connecting the network with the real world and helping to build a decentralized ecosystem.

Each transaction can include up to 1 KiB of data shared across all transaction transfers.

Integrated data can be passed by sending an integrated address to the user, this will be automatically encrypted and injected in the extra_data field of the transaction.

It can be of any type and support JSON encoding/decoding for easy manipulation.

A query system is also integrated in the wallet database to make research like in a traditional database across all transactions and more.

Examples

As an example, you can built-in a message in a transaction to send a note to someone or directly have a chat with someone without relying on a server to communicate and keeping your identity private.

For exchanges, having a way to identify easily a deposit is also a good way to have a better user experience. This can be done by including a unique identifier in the transaction that will be used to identify the deposit and credit the user account.

Some shop could determine which product a customer want to buy, and including shipping information in the transaction to have a complete order in a single transaction.

But this is also useful for others services requesting to have a proof of a transaction, like a bill or a contract.

Lot of possibilities are available with integrated data, it just depends on your imagination and the services you want to build on top of XELIS.

Limitations

The data included in a transaction is limited to 1 KiB in its encrypted form.

This is a necessary limitation to prevent chain bloating and growing too fast in size disk terms.

While this is a good way to communicate in a decentralized context, you still have to trust the other party if it's a service that he will execute the action you requested.