Skip to content

Commit

Permalink
The documentation landing
Browse files Browse the repository at this point in the history
  • Loading branch information
hashedone committed Jul 30, 2024
1 parent 21c4246 commit 88a5725
Showing 1 changed file with 39 additions and 4 deletions.
43 changes: 39 additions & 4 deletions src/pages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,43 @@
tags: ["intro"]
---

CosmWasm is a smart contract platform focusing on security, performance, and
interoperability. It is the only smart contracting platform for public
blockchains with heavy adoption outside of the EVM world.
The [Cosmos Wasm](https://github.com/CosmWasm/wasmd/tree/main/x/wasm), the root of CosmWasm, is a
[CosmosSDK](https://docs.cosmos.network/) module enabling Smart Contracts to execute on the Wasm virtual machine.
It is a bridge between Cosmos chain and the [WasmWM](https://github.com/CosmWasm/wasmvm) executing the Smart Contracts.
CosmWasm itself is the whole ecosystem built around it with a missing to make Smart Contracts development easy and reliable.
The focuses of the CosmWasm platform are security, performance, and interoperability. CosmWasm is the only Smart Contracts
platform for public blockchains that has been heavily adopted outside the EVM world.

Here you can find its documentation.
We chose to target a Rust programming language as a Smart Contract development stack, as it has the best Wasm compiler on the
market so far. As of today, we do not provide bindings to help write Smart Contracts in another stack that compiles to Wasm,
and we don't support that.

Here is where to find CosmWasm in the whole Cosmos stack:

```mermaid
erDiagram
CosmosSDK ||--|| BFT: Uses
CosmosSDK ||--|| "Wasm/WasmWM": Includes
CosmosSDK ||--o{ "Custom Module" : Includes
"Wasm/WasmWM" ||--o{ "Smart Contract": Executes
```

The important thing about CosmWasm Smart Contracts is their transparency. Even though they are executed by the chain node application
using the WasmVM module, they are written to hide their dependency on it. Every Smart Contract has its unique address on the chain,
and it can act just like any other chain client. It is easy to implement communication between two Smart Contracts on the same chain.
CosmWasm standard library provides simple utilities to communicate with non-CosmWasm modules on the chain. That includes common Cosmos
modules like bank or staking and any custom module unique for a particular chain. Finally, CosmWasm is built around the
[IBC](https://www.ibcprotocol.dev/), and it
provides simple entities for communication with remote chains using IBC-based protocols and talk directly to Smart Contracts instantiated
on remote chains with the IBC packages.

This documentation already covers most of the stack. Still, some parts are a work in progress. If there is something you remember
being here in the old documentation, you can find its content at https://github.com/CosmWasm/docs-deprecated. Remember that the
old documentation is deprecated, mostly outdated, and will not be maintained. We would appreciate any GitHub issues about missing
parts in the [documentation repository](https://github.com/CosmWasm/docs).

It is worth noting about additional CosmWasm learning resources:

* [CosmWasm book](https://book.cosmwasm.com/)
* [Sylvia book](https://cosmwasm.github.io/sylvia-book/index.html)

0 comments on commit 88a5725

Please sign in to comment.