Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The documentation landing #119

Merged
merged 7 commits into from
Aug 14, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 42 additions & 4 deletions src/pages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,46 @@
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 [x/wasm module](https://github.com/CosmWasm/wasmd/tree/main/x/wasm), the root of CosmWasm, is a
[Cosmos SDK](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 mission to make smart contracts development easy and
reliable. The focuses of the CosmWasm platform are security, performance, and interoperability.

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
"Cosmos SDK" ||--|| BFT: Uses
"Cosmos SDK" ||--|| "Wasm/WasmWM": Includes
"Cosmos SDK" ||--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 instance 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)