> TL;DR: Crust has a mainnet that is part of IPFS and a set of different solutions to bridge on to this mainnet across ecosystems. Overall the conclusion is that Crust is not a trustworthy solution for Polkadot to be part of it's main techstack.
The following document intends to be a quick guide into what Crust Network is and what services it provides.
Crust Network is a combination of a sub-system within IPFS, together with an incentiveze layer on top of it _a la_ Filecoin. In itself, the system is composed in three parts:
- A [Substrate SoloChain](https://github.com/crustio/crust/tree/mainnet) that works within the IPFS system providing storage to the network. This chain is responsible for the file storage (with all it's proofs) and incentivizing storage providers.
- A [Polkadot Parachain](https://github.com/crustio/crust/tree/crust-parachain-4-with-spec) that bridges Polkadot to their own solo-network. Currently deployed on Kusama and Polkadot.
- A [Set of Smart Contracts](https://github.com/crustio/eth-storage-contract) that connect EVM like chains to their solo-network. Currently deployed on Ethereum and moving on to layer-2 deployemnts (Arbitrum, zkSync and Optimism).
In terms of Services, Crust as an entire system basically provides:
- **IPFS Gateway**, allowing users to upload and download from IPFS via their mainnet.
- **IPFS Pinning service**, increasing replication of stored files and ensuring availability.
- **Querying service**, with storage validations and tool to explore these files.
Currently the Crust Network has several integrations within the ecosystem. Some to mention, are:
- PolkadotJS Apps has a canonical version hosted on IPFS, polkadot.dotapps.io. Same usage of Crust is being done today by Uniswap and Aave.
- Apillon team has integrated Crust to offer a seamless integrations for projects that need to use a storage layer and for website hosting. [Blog Post](https://blog.apillon.io/official-partnership-crust-network-to-be-integrated-into-apillons-web3-development-platform-25e49c742fa8), [Demo](https://www.youtube.com/watch?v=qQJnuvUo-xo).
- Robonomics is storing machine data from their Boston Dynamics robots.
In terms of pricing, currently storing data on Crust is cheaper than on AWS, which in itself is questionable.
## Crust Mainnet
The innerworkings of the Crust Mainnet as a sub-set of the IPFS network is not very clear from their documentation. Apparently the system relies on a set of TEE workers that ensure the data is persisted on IPFS through periodic storage proofes, in a mechanism called MPoW (Meaninful Proof Of Work). This is then paired with two other systems, namely Guaranteed Proof of Stake and DSM (decentralized Storage Market).
None of these systems are properly documented to understand in full detail how they work. Even so, they acknowledge potential attack vectors to their TEEs on their whitepaper (see section H: Attacks and Threats), however without presenting any ways of countering these.

Full details on the workings of these systems can be found [here](https://wiki.crust.network/docs/en/crustOverview).
## Parachain Integrations
Crust has developed the [x-storage pallet](https://github.com/crustio/crust/tree/crust-parachain-4-with-spec/crust-collator/pallets/xstorage) that allows other parachains within the Polkadot Ecosystem to access the storage services of the Crust Network.
The XCM message looks as follows, and the fees are processed leveraging the xTokens pallet on ORML, thus allowing for fee payment with native tokens.
```
let place_storage_order = (storage_pallet_id, method_id, cid, size).encode();
let transact = Xcm::Transact {
origin_type: OriginKind::Superuser,
require_weight_at_most: 1_000,
call: place_storage_order.into()
};
T::XcmpMessageSender::send_xcm(MultiLocation::X2(Junction::Parent, Junction::Parachain(CrustChainId)), transact).map_err(|_| Error::<T>::FailedToSend)?;
```
Crust claims that this solution has already been used by Moonbeam, Acala, Bifrost, Robonomics, Phala, OAK Network and Darwinia. On-chain info suggests this is mainly on Kusama.
- [Kusama XCMs to Crust](https://kusama.subscan.io/xcm_message?address=&fromChain=all&toChain=2012&startDate=&endDate=&startBlock=&endBlock=&timeType=date&result=all&protocol=all)
- [Polkadot XCMs to Crust](https://polkadot.subscan.io/xcm_message?address=&fromChain=all&toChain=2008&startDate=&endDate=&startBlock=&endBlock=&timeType=date&result=all&protocol=all)
More info [here](https://wiki.crust.network/docs/en/buildXCMPBasedCrossChainSolution).
## Conclusion
Crust is not offering a dedicated storage solution for Polkadot, but rather bridging to IPFS. They do this using TEEs as a main part of their techstack. This solution does not offer the proper security guarantees to make Crust part of the base techstack of Polkadot.
## Quick Links
- Repo: https://github.com/crustio/crust
- Wiki: https://wiki.crust.network/en
- Whitepaper: https://ipfs.io/ipfs/QmP9WqDYhreSuv5KJWzWVKZXJ4hc7y9fUdwC4u23SmqL6t