Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion STYLE_GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sei Docs Style Guide

Check warning on line 1 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L1

Use sentence case for headings: 'Sei Docs Style Guide'.

This style guide contains general rules and principles to ensure the documentation is cohesive, useful, and organized.

Expand All @@ -6,7 +6,7 @@

This documentation strives to be:

### Beginner Friendly

Check warning on line 9 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L9

Use sentence case for headings: 'Beginner Friendly'.

The Sei community welcomes members from all walks of life. As such, the documentation should be understandable by anyone, including those who are new to Web3 or non-technical.

Expand All @@ -22,8 +22,8 @@

- To be clear and inclusive, avoid using jargon and obscure words where possible.
- Limit the number of clauses in a sentence and make sure that your points are structured.
- Avoid qualifying language, which is ~~quite~~ often ~~completely~~ unnecessary.

Check warning on line 25 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L25

'quite' is often unnecessary qualifying language — consider removing it.

Check warning on line 25 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L25

'completely' is often unnecessary qualifying language — consider removing it.
- Information should be simply organized and easy to find.

Check warning on line 26 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L26

'simply' is often unnecessary qualifying language — consider removing it.

### Self-explanatory

Expand Down Expand Up @@ -64,13 +64,13 @@
- **Reference**: Transactions, RPC reference, tokens, changelog, ecosystem contracts
- **Hardware Wallets**: Ledger integration with Ethers

### Cosmos-SDK (Deprecated)

Check warning on line 67 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L67

Use sentence case for headings: 'Cosmos-SDK (Deprecated)'.

> ⚠️ **Deprecation Notice**: Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://www.mintscan.io/sei/proposals/99).
> ⚠️ **Deprecation Notice**: Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://seistream.app/proposals/99).

This section contains legacy documentation for Cosmos SDK functionality. New development should focus on the EVM.

### Operate (Node)

Check warning on line 73 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L73

Use sentence case for headings: 'Operate (Node)'.

The Operate section covers topics related to running Sei infrastructure. This is relevant for node operators, validators, and those looking to contribute to chain infrastructure.

Expand All @@ -79,15 +79,15 @@
- **Node Operations**: Overview, Seictl setup, statesync, snapshot sync, node types, troubleshooting, API configuration, validators, oracle price feeder
- **Advanced Operations**: Configuration & monitoring, RocksDB backend, technical reference

## Style Guidelines

Check warning on line 82 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L82

Use sentence case for headings: 'Style Guidelines'.

### Acronyms and Abbreviations

Check warning on line 84 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L84

Use sentence case for headings: 'Acronyms and Abbreviations'.

To maximize clarity, we should avoid acronyms and abbreviations where possible, especially for shorter, more ambiguous acronyms:

- Just use 'CosmWasm' instead of 'CW'

However, there are occasions where acronyms might be more easily understandable (e.g., NFT instead of Non-Fungible Token, RPC instead of Remote Procedure Call), or referred to very frequently.

Check warning on line 90 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L90

'very' is often unnecessary qualifying language — consider removing it.

In these cases, we should first use the spelled-out term followed by the shortened form in parentheses:

Expand Down Expand Up @@ -252,7 +252,7 @@
</Frame>
```

### Callouts and Admonitions

Check warning on line 255 in STYLE_GUIDE.md

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

STYLE_GUIDE.md#L255

Use sentence case for headings: 'Callouts and Admonitions'.

Use callouts to highlight important information. Mintlify supports the following callout types:

Expand Down
6 changes: 3 additions & 3 deletions cosmos-sdk/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ canonicalUrl: "https://docs.sei.io/evm"

**Deprecation Notice**

Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://www.mintscan.io/sei/proposals/99).
Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://seistream.app/proposals/99).

In addition, [Proposal 115](https://www.mintscan.io/sei/proposals/115) disables CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) chain-wide. No new CosmWasm contracts can be deployed; only `execute` and `query` against pre-existing contracts remain available via the [CosmWasm precompile](/evm/precompiles/cosmwasm-precompiles/cosmwasm).
In addition, [Proposal 115](https://seistream.app/proposals/115) disables CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) chain-wide. No new CosmWasm contracts can be deployed; only `execute` and `query` against pre-existing contracts remain available via the [CosmWasm precompile](/evm/precompiles/cosmwasm-precompiles/cosmwasm).

[Proposal 116](https://www.mintscan.io/sei/proposals/116) additionally disables inbound IBC transfers. After this passes and is activated, IBC assets bridged from Cosmos chains can no longer arrive on Sei. [Proposal 120](https://www.mintscan.io/sei/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
[Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers. After this passes and is activated, IBC assets bridged from Cosmos chains can no longer arrive on Sei. [Proposal 120](https://seistream.app/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.

</Danger>
4 changes: 2 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -461,8 +461,8 @@
"href": "https://seiscan.io"
},
{
"label": "Mintscan",
"href": "https://www.mintscan.io/sei"
"label": "Seistream",
"href": "https://seistream.app"
}
]
},
Expand Down
8 changes: 4 additions & 4 deletions evm/differences-with-ethereum.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@

**Deprecation Notice**

Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://www.mintscan.io/sei/proposals/99).
Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only. For more details, see [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and [Proposal 99](https://seistream.app/proposals/99).

[Proposal 115](https://www.mintscan.io/sei/proposals/115) further disables CosmWasm code uploads and contract instantiations chain-wide — no new CosmWasm contracts can be deployed. Only `execute` and `query` against pre-existing CosmWasm contracts remain available.
[Proposal 115](https://seistream.app/proposals/115) further disables CosmWasm code uploads and contract instantiations chain-wide — no new CosmWasm contracts can be deployed. Only `execute` and `query` against pre-existing CosmWasm contracts remain available.

[Proposal 116](https://www.mintscan.io/sei/proposals/116) additionally disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. [Proposal 120](https://www.mintscan.io/sei/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
[Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. [Proposal 120](https://seistream.app/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.

</Danger>

Expand All @@ -50,7 +50,7 @@
- User accounts on Sei have [two addresses](/learn/accounts) derived from the same public key (Cosmos Bech32 and EVM-compatible 0x…)
- Interoperability between EVM and Cosmos-SDK modules is governed and navigated via [precompiles](/evm/precompiles/example-usage) and [pointer contracts](/learn/pointers)

## Sei EVM Release

Check warning on line 53 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L53

Use sentence case for headings: 'Sei EVM Release'.

Sei EVM was originally deployed at the following block heights and versions:

Expand All @@ -66,7 +66,7 @@
- **Height:** `79123881`
- **Changelog:** https://github.com/sei-protocol/sei-chain/blob/main/CHANGELOG.md#v552

## Opcode Differences

Check warning on line 69 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L69

Use sentence case for headings: 'Opcode Differences'.

| Opcode | Sei EVM | Ethereum | Notes |
| --- | --- | --- | --- |
Expand All @@ -80,7 +80,7 @@
| Blob‑related opcodes | Not supported (Pectra without blobs) | Supported post‑Cancun (EIP‑4844) | Blob transactions are not enabled on Sei. |


### PREVRANDAO

Check warning on line 83 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L83

Use sentence case for headings: 'PREVRANDAO'.

Since Sei doesn't rely on the same pseudo‑randomness way of determining the next
validator like Proof of Stake (PoS) Ethereum does, it doesn't have the
Expand All @@ -94,19 +94,19 @@
Coinbase address on Sei is always set to (the EVM address of) the global fee
collector.

## State Root

Check warning on line 97 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L97

Use sentence case for headings: 'State Root'.

Since Sei uses AVL-tree instead of Merkle Patricia Trie (MPT) for data storage,
Sei doesn't have per-account state root. The global state root is the AVL-tree
root which is also not equivalent to Ethereum's overall state root (which is a
MPT root)

## Block Hash

Check warning on line 104 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L104

Use sentence case for headings: 'Block Hash'.

The block hash on Sei is computed based on the block header in Tendermint data
format, and is different from Ethereum's block Hash as a result.

## Base Fee & Tips

Check warning on line 109 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L109

Use sentence case for headings: 'Base Fee & Tips'.

Sei supports all non‑blob transaction types, including the Pectra `SetCode` transaction (EIP‑7702). However for a legacy (non EIP‑1559) type
transaction, you must specify a gas price at or above Sei's governance-set minimum gas price (currently `50 gwei` on mainnet). Query the live value with `eth_gasPrice` rather than hard-coding it. In addition to this, excess
Expand All @@ -131,7 +131,7 @@
value: '"0.007500000000000000"'
```

## Non-EVM Transactions

Check warning on line 134 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L134

Use sentence case for headings: 'Non-EVM Transactions'.

On Sei there exists non-EVM transactions which may update states accessible by
EVM transactions. The simplest example would be bank balances, which may be
Expand All @@ -145,7 +145,7 @@
committed (~400 ms) — meaning that commitment levels of "safe", "latest",
"justified", and "finalized" on Ethereum are all the same thing on Sei.

## Pending State

Check warning on line 148 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L148

Use sentence case for headings: 'Pending State'.

On Ethereum the block proposer would execute its proposed block first (and
update its local state) before broadcasting the proposal to others (the updated
Expand All @@ -156,7 +156,7 @@
the same time), so Sei does not have a window when "pending state"
exists.

## Gas Model & Fees

Check warning on line 159 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L159

Use sentence case for headings: 'Gas Model & Fees'.

Sei does not implement base‑fee burning. There is no base‑fee burn; all transaction fees accrue to validators. Fees are calculated as:

Expand All @@ -178,11 +178,11 @@

</Info>

## SSTORE Gas Cost

Check warning on line 181 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L181

Use sentence case for headings: 'SSTORE Gas Cost'.

On Sei, the `SSTORE` opcode gas cost is configurable as an on-chain parameter, meaning it can be adjusted via governance proposal without requiring a chain upgrade. This provides flexibility to tune storage costs based on EVM state size and network conditions.

Currently, the `SSTORE` gas cost is set to the non-standard value of **72,000 gas**. This value is the same on both mainnet (`pacific-1`) and testnet (`atlantic-2`). It was set by governance [Proposal #109](https://www.mintscan.io/sei/proposals/109) ("Update EVM SSTORE set gas to 72000"), which changed the `evm` module parameter `KeySeiSstoreSetGasEIP2200` to `72000`.
Currently, the `SSTORE` gas cost is set to the non-standard value of **72,000 gas**. This value is the same on both mainnet (`pacific-1`) and testnet (`atlantic-2`). It was set by governance [Proposal #109](https://seistream.app/proposals/109) ("Update EVM SSTORE set gas to 72000"), which changed the `evm` module parameter `KeySeiSstoreSetGasEIP2200` to `72000`.

The values below are read **live** from the Sei EVM:

Expand All @@ -192,7 +192,7 @@

<Info>Since `SSTORE` is a governance-controlled parameter, this value may change in the future through a governance proposal.</Info>

## ERC Token Standards Compatibility

Check warning on line 195 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L195

Use sentence case for headings: 'ERC Token Standards Compatibility'.

Sei’s EVM fully supports the common token standards:

Expand All @@ -202,7 +202,7 @@

Existing OpenZeppelin contracts and tools work unchanged.

## Testing & Migration Checklist

Check warning on line 205 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L205

Use sentence case for headings: 'Testing & Migration Checklist'.

- ✅ Re‑deploy your Solidity code to Sei testnet; most contracts need no changes.
- ✅ If you used SELFDESTRUCT, refactor to a soft‑close pattern.
Expand Down
6 changes: 3 additions & 3 deletions evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
<Danger>
**Deprecation Notice — Prop 115 & Prop 116**

Per [governance Proposal 115](https://www.mintscan.io/sei/proposals/115), CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) are disabled chain-wide. The `instantiate()` function on this precompile **will revert** for all callers. Only `execute()`, `execute_batch()`, and `query()` against pre-existing CosmWasm contracts remain functional, and all CosmWasm functionality is deprecated in favor of EVM-only per [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md).
Per [governance Proposal 115](https://seistream.app/proposals/115), CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) are disabled chain-wide. The `instantiate()` function on this precompile **will revert** for all callers. Only `execute()`, `execute_batch()`, and `query()` against pre-existing CosmWasm contracts remain functional, and all CosmWasm functionality is deprecated in favor of EVM-only per [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md).

In addition, [Proposal 116](https://www.mintscan.io/sei/proposals/116) disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
In addition, [Proposal 116](https://seistream.app/proposals/116) disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.

For new smart contract development, use the EVM directly. See [Deploy a Smart Contract](/evm/evm-general).
</Danger>
Expand All @@ -20,7 +20,7 @@

<Info> **What is a precompile?** A precompile is a special smart contract deployed at a fixed address by the Sei protocol itself, that exposes custom native chain logic to EVM-based applications. It acts like a regular contract from the EVM's perspective, but executes privileged, low-level logic efficiently. </Info>

## How Does the CosmWasm Precompile Work?

Check warning on line 23 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L23

Use sentence case for headings: 'How Does the CosmWasm Precompile Work?'.

The CosmWasm precompile at address `0x0000000000000000000000000000000000001002` exposes functions like `execute()`, `execute_batch()`, and `query()`.

Expand All @@ -28,7 +28,7 @@
- **Native Execution:** Operations are executed at the Cosmos SDK level for maximum efficiency and security.
- **Seamless Bridge:** No need for separate wallet integrations or complex cross-chain interactions.

## What You'll Learn in This Guide

Check warning on line 31 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L31

Use sentence case for headings: 'What You'll Learn in This Guide'.

By the end of this guide, you'll be able to:

Expand All @@ -41,9 +41,9 @@

The CosmWasm precompile exposes the following functions:

### Transaction Functions

Check warning on line 44 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L44

Use sentence case for headings: 'Transaction Functions'.

<Warning>The `instantiate()` function has been disabled by [Prop 115](https://www.mintscan.io/sei/proposals/115) and will revert. It is omitted from this reference. The ABI in `@sei-js/precompiles` may still expose it for backwards compatibility, but calling it on-chain will fail.</Warning>
<Warning>The `instantiate()` function has been disabled by [Prop 115](https://seistream.app/proposals/115) and will revert. It is omitted from this reference. The ABI in `@sei-js/precompiles` may still expose it for backwards compatibility, but calling it on-chain will fail.</Warning>

```solidity
/// Executes some message on a CosmWasm contract.
Expand Down Expand Up @@ -71,7 +71,7 @@
) payable external returns (bytes[] memory responses);
```

### Query Functions

Check warning on line 74 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L74

Use sentence case for headings: 'Query Functions'.

```solidity
/// Queries a CosmWasm contract.
Expand All @@ -84,7 +84,7 @@
) external view returns (bytes memory response);
```

## Using the Precompile

Check warning on line 87 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L87

Use sentence case for headings: 'Using the Precompile'.

### Setup

Expand All @@ -97,7 +97,7 @@
- **EVM-compatible wallet**
- **SEI tokens** for gas and contract operations

#### Install Dependencies

Check warning on line 100 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L100

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -109,7 +109,7 @@
npm install @sei-js/precompiles@2.1.2
```

#### Import Precompile Components

Check warning on line 112 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L112

Use sentence case for headings: 'Import Precompile Components'.

```typescript
// Import CosmWasm precompile address and ABI
Expand All @@ -134,11 +134,11 @@
const cosmwasm = new ethers.Contract(WASM_PRECOMPILE_ADDRESS, WASM_PRECOMPILE_ABI, signer);
```

## Critical: Understanding Message Formats

Check warning on line 137 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L137

Use sentence case for headings: 'Critical: Understanding Message Formats'.

One of the most important concepts to understand when working with the Sei CosmWasm precompile:

### CosmWasm Message Structure

Check warning on line 141 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L141

Use sentence case for headings: 'CosmWasm Message Structure'.

The CosmWasm precompile requires **JSON-encoded messages** that conform to each contract's specific schema:

Expand All @@ -148,7 +148,7 @@
| `query()` | req parameter (input) | JSON bytes | `ethers.toUtf8Bytes(jsonString)` |
| **All functions** | response (output) | JSON bytes | `JSON.parse(ethers.toUtf8String(response))` |

### How Message Encoding Works

Check warning on line 151 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L151

Use sentence case for headings: 'How Message Encoding Works'.

**All CosmWasm functions require JSON-encoded byte arrays:**

Expand All @@ -160,7 +160,7 @@
- Use `msg.value` for SEI amounts
- Use `coins` parameter for other denominations (encoded as JSON bytes)

### Best Practice: Message Encoding Helpers

Check warning on line 163 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L163

Use sentence case for headings: 'Best Practice: Message Encoding Helpers'.

When working with CosmWasm messages, use proper JSON encoding:

Expand Down Expand Up @@ -203,7 +203,7 @@
});
```

## Message Format Helpers

Check warning on line 206 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L206

Use sentence case for headings: 'Message Format Helpers'.

Use these helper functions to handle CosmWasm message formatting:

Expand Down Expand Up @@ -251,9 +251,9 @@
const coins = CosmWasmHelper.createCoins([{ denom: 'uusdc', amount: '1000000' }]);
```

## Step-by-Step Guide: Using the CosmWasm Precompile

Check warning on line 254 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L254

Use sentence case for headings: 'Step-by-Step Guide: Using the CosmWasm Precompile'.

### Execute a CosmWasm Contract

Check warning on line 256 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L256

Use sentence case for headings: 'Execute a CosmWasm Contract'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -311,7 +311,7 @@
</Tab>
</Tabs>

### Execute Batch Operations

Check warning on line 314 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L314

Use sentence case for headings: 'Execute Batch Operations'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -382,7 +382,7 @@
</Tab>
</Tabs>

### Query a CosmWasm Contract

Check warning on line 385 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L385

Use sentence case for headings: 'Query a CosmWasm Contract'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -451,9 +451,9 @@

<Warning> **Query Limitations:** CosmWasm queries are read-only operations and don't consume gas, but parsing JSON responses in Solidity is complex. Consider handling response parsing off-chain. </Warning>

## Advanced Usage Examples

Check warning on line 454 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L454

Use sentence case for headings: 'Advanced Usage Examples'.

### Cross-Runtime DeFi Integration

Check warning on line 456 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L456

Use sentence case for headings: 'Cross-Runtime DeFi Integration'.

```typescript
async function crossRuntimeDeFiOperation(cosmwasmDexContract: string, evmTokenContract: string, amount: string) {
Expand Down Expand Up @@ -492,7 +492,7 @@
}
```

### Complete Integration Example

Check warning on line 495 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L495

Use sentence case for headings: 'Complete Integration Example'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -730,9 +730,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 733 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L733

Use sentence case for headings: 'Common Issues and Solutions'.

#### Message Encoding Issues

Check warning on line 735 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L735

Use sentence case for headings: 'Message Encoding Issues'.

```typescript
// Ensure proper JSON encoding for messages
Expand All @@ -750,7 +750,7 @@
const incorrectMsg = ethers.toUtf8Bytes('invalid json');
```

### Error Code Reference

Check warning on line 753 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L753

Use sentence case for headings: 'Error Code Reference'.

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -761,23 +761,23 @@
| `unauthorized` | Insufficient permissions | Check admin/owner permissions |
| `query parsing failed` | Invalid query message format | Match contract's query schema |

## Important Notes

Check warning on line 764 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L764

Use sentence case for headings: 'Important Notes'.

<Info> Remember the key rule: All CosmWasm messages must be properly JSON-encoded as bytes, and contract schemas vary by implementation! </Info>

### Message Format Requirements

Check warning on line 768 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L768

Use sentence case for headings: 'Message Format Requirements'.

- **JSON Encoding:** All messages must be valid JSON encoded as UTF-8 bytes, invalid JSON will cause transaction failures
- **Schema Compliance:** Messages must match the contract's expected format
- **Type Safety:** Use proper data types as expected by the contract

### Contract Address Format

Check warning on line 774 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L774

Use sentence case for headings: 'Contract Address Format'.

- Use valid Sei contract addresses with `sei1...` prefix
- These are Cosmos-format addresses, not EVM addresses
- **Contract Existence:** Verify contracts exist before calling

### Cross-Runtime Considerations

Check warning on line 780 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L780

Use sentence case for headings: 'Cross-Runtime Considerations'.

- **State Isolation:** CosmWasm and EVM contracts have separate state
- **Gas Estimation:** CosmWasm operations may require different gas calculations
Expand All @@ -785,7 +785,7 @@
- **Native Token Handling:** Use `msg.value` for SEI, `coins` for other denominations
- **Batch Limitations:** Large batches may hit gas limits

### Best Practices

Check warning on line 788 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L788

Use sentence case for headings: 'Best Practices'.

- Always validate JSON messages before sending
- Handle response parsing carefully, especially for complex data structures
Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/example-usage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


<Info>
Per [Proposal 115](https://www.mintscan.io/sei/proposals/115), no new CosmWasm contracts can be deployed on Sei. The examples below apply to **pre-existing CosmWasm contracts** only — `instantiate()` will revert. Separately, [Proposal 116](https://www.mintscan.io/sei/proposals/116) disables inbound IBC transfers as part of the [SIP-03](/learn/sip-03-migration) migration.
Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be deployed on Sei. The examples below apply to **pre-existing CosmWasm contracts** only — `instantiate()` will revert. Separately, [Proposal 116](https://seistream.app/proposals/116) disables inbound IBC transfers as part of the [SIP-03](/learn/sip-03-migration) migration.
</Info>

The Sei precompiles can be used like any standard smart contract on the EVM. For
Expand Down Expand Up @@ -47,7 +47,7 @@
const contract = new ethers.Contract(WASM_PRECOMPILE_ADDRESS, WASM_PRECOMPILE_ABI, signer);
```

#### Querying & Executing a CosmWasm Contract

Check warning on line 50 in evm/precompiles/cosmwasm-precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/example-usage.mdx#L50

Use sentence case for headings: 'Querying & Executing a CosmWasm Contract'.

Once you have the contract, you can query and execute messages to any CosmWasm
smart contract. In the below example we assume there is a counter contract with a `get_count` function
Expand Down
2 changes: 1 addition & 1 deletion learn/dev-interoperability.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
---

<Info>
**CosmWasm deployments are frozen, and inbound IBC is being disabled.** Per [Proposal 115](https://www.mintscan.io/sei/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei. [Proposal 116](https://www.mintscan.io/sei/proposals/116) additionally disables inbound IBC transfers, so IBC assets bridged from Cosmos chains can no longer arrive on Sei. The interoperability features described on this page apply to **already-deployed** CosmWasm contracts, native Bank Module assets, and Cosmos-SDK modules accessed via precompiles. For new smart contract development, build directly on the EVM. See [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) for the full migration context.
**CosmWasm deployments are frozen, and inbound IBC is being disabled.** Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei. [Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers, so IBC assets bridged from Cosmos chains can no longer arrive on Sei. The interoperability features described on this page apply to **already-deployed** CosmWasm contracts, native Bank Module assets, and Cosmos-SDK modules accessed via precompiles. For new smart contract development, build directly on the EVM. See [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) for the full migration context.
</Info>

## Dual Address Support

Check warning on line 12 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L12

Use sentence case for headings: 'Dual Address Support'.

Sei utilizes two distinct address types:

Expand All @@ -23,7 +23,7 @@
For more details on interoperability, explore our article
[here](https://blog.sei.io/sei-v2-interoperability/).

## Virtual Machine Interoperability

Check warning on line 26 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L26

Use sentence case for headings: 'Virtual Machine Interoperability'.

EVM and existing CosmWasm-based smart contracts co-exist on Sei, but live in
different execution environments. This creates a challenge for users, who use
Expand All @@ -35,7 +35,7 @@
already-deployed CosmWasm contracts to the EVM via precompiled contracts. New
smart contracts on Sei should be deployed on the EVM directly.

## Precompile Contracts

Check warning on line 38 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L38

Use sentence case for headings: 'Precompile Contracts'.

Sei precompiles are smart contracts embedded directly within the Sei EVM
environment. They provide a gateway for users and developers to access Cosmos-SDK functions through the EVM RPC interface.
Expand All @@ -43,7 +43,7 @@
For instructions on utilizing EVM precompiles, refer to the
[Example Usage](/evm/precompiles/example-usage) section.

## Example Diagram

Check warning on line 46 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L46

Use sentence case for headings: 'Example Diagram'.

![Interoperability](/assets/interoperability.png)
*Enabling seamless access to all tokens and contracts on Sei*
6 changes: 3 additions & 3 deletions learn/dev-token-standards.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
---

<Info>
**Use ERC20 / ERC721 / ERC1155 for new tokens.** Per [Proposal 115](https://www.mintscan.io/sei/proposals/115), CosmWasm code uploads and contract instantiations are disabled on Sei, so no new CW20 / CW721 / CW1155 tokens can be deployed. The CW standards described below are documented for users and developers interacting with already-deployed legacy contracts.
**Use ERC20 / ERC721 / ERC1155 for new tokens.** Per [Proposal 115](https://seistream.app/proposals/115), CosmWasm code uploads and contract instantiations are disabled on Sei, so no new CW20 / CW721 / CW1155 tokens can be deployed. The CW standards described below are documented for users and developers interacting with already-deployed legacy contracts.
</Info>

In this section, we delve into the various token standards supported on Sei.
Expand All @@ -17,7 +17,7 @@
- [Sei Token](#sei-token)
- [Smart Contract Tokens](#smart-contract-tokens)

## Sei Token

Check warning on line 20 in learn/dev-token-standards.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-token-standards.mdx#L20

Use sentence case for headings: 'Sei Token'.

The Sei token is the native token of the Sei blockchain, serving multiple roles
within the ecosystem.
Expand All @@ -42,19 +42,19 @@

`1 gwei = 1 nsei`

## Fungible Tokens

Check warning on line 45 in learn/dev-token-standards.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-token-standards.mdx#L45

Use sentence case for headings: 'Fungible Tokens'.

Fungible tokens are digital assets that are interchangeable with one another and
are not unique. Sei supports both ERC20 and CW20 fungible token standards.

### Smart Contract Tokens

Check warning on line 50 in learn/dev-token-standards.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-token-standards.mdx#L50

Use sentence case for headings: 'Smart Contract Tokens'.

- **ERC20** (recommended): The ERC20 standard defines a common set of rules for
fungible tokens on EVM-based blockchains. These tokens can be transferred,
approved, and queried using standard functions. **Use ERC20 for any new
fungible token on Sei.**
- **CW20** (legacy only): The Cosmos-side fungible token standard. Per
[Prop 115](https://www.mintscan.io/sei/proposals/115), no new CW20 contracts
[Prop 115](https://seistream.app/proposals/115), no new CW20 contracts
can be deployed. Existing CW20 tokens continue to function and can still have
pointer contracts created for them.
- **Interoperability and Pointer Contracts**:
Expand All @@ -78,7 +78,7 @@
semi-fungible tokens. **Use these for any new NFT collection on Sei.**
- **ERC2981**: Defines a royalty mechanism for NFTs, ensuring creators receive
a percentage of sales.
- **CW721 / CW1155** (legacy only): Per [Prop 115](https://www.mintscan.io/sei/proposals/115),
- **CW721 / CW1155** (legacy only): Per [Prop 115](https://seistream.app/proposals/115),
no new CW721 / CW1155 contracts can be deployed. Existing collections continue
to function and can be surfaced on the EVM via pointer contracts.
- **Interoperability**: Similar to fungible tokens, legacy CW NFT collections
Expand Down
1 change: 0 additions & 1 deletion learn/explorers.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---

Check warning on line 1 in learn/explorers.mdx

View workflow job for this annotation

GitHub Actions / audit

Description is 188 chars (ideal 50-160)
title: 'Sei Blockchain Explorers Guide'
sidebarTitle: 'Block Explorers'
description: 'A comprehensive overview of block explorers for the Sei Network across different environments. Access tools for tracking transactions, analyzing addresses, and monitoring network activity.'
keywords: ['sei blockchain explorer', 'transaction tracking', 'block analysis', 'blockchain monitoring', 'network statistics']
---
## What Is a Block Explorer?

Check warning on line 7 in learn/explorers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/explorers.mdx#L7

Use sentence case for headings: 'What Is a Block Explorer?'.

Rather than downloading the entire blockchain ledger, using a block explorer is
the most common method to look up all kinds of useful on-chain information.
Expand Down Expand Up @@ -36,12 +36,11 @@
Note: In rare cases, some information may be misinterpreted. Off-chain data should be used as a guide only.
</Info>

## Sei Explorers

Check warning on line 39 in learn/explorers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/explorers.mdx#L39

Use sentence case for headings: 'Sei Explorers'.

<Tabs>
<Tab title="mainnet (pacific-1)">
- [Seiscan](https://seiscan.io) — A user-friendly block explorer for the Sei Pacific-1 mainnet.
- [Mintscan](https://www.mintscan.io/sei) — Comprehensive blockchain explorer and analytics platform for Sei mainnet.
- [Seistream](https://seistream.app/) — Real-time transaction streaming and monitoring tool for Sei mainnet.
- [NG Explorer](https://sei.explorers.guru) — Comprehensive blockchain explorer provided by Nodes Guru for Sei mainnet.
</Tab>
Expand Down
2 changes: 1 addition & 1 deletion learn/pointers.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

Check warning on line 1 in learn/pointers.mdx

View workflow job for this annotation

GitHub Actions / audit

Description is 167 chars (ideal 50-160)
title: 'Sei Pointer Contracts: Bridging EVM and Cosmos Environments'
sidebarTitle: 'Pointer Contracts'
description: "Understand how Sei's pointer contract system enables seamless asset movement between EVM and Cosmos environments, with implementation patterns for various token types."
Expand All @@ -6,7 +6,7 @@
---

<Info>
**Pointer contracts are now primarily a legacy / migration tool.** Per [Proposal 115](https://www.mintscan.io/sei/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei, so the CW20 / CW721 / CW1155 → ERC20 / ERC721 / ERC1155 pointer flow only applies to already-deployed CosmWasm contracts. Native (Bank Module) pointers continue to work normally. For new tokens or NFTs, deploy ERC20 / ERC721 / ERC1155 contracts directly on the EVM.
**Pointer contracts are now primarily a legacy / migration tool.** Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei, so the CW20 / CW721 / CW1155 → ERC20 / ERC721 / ERC1155 pointer flow only applies to already-deployed CosmWasm contracts. Native (Bank Module) pointers continue to work normally. For new tokens or NFTs, deploy ERC20 / ERC721 / ERC1155 contracts directly on the EVM.
</Info>

Pointer Contracts enable tokens to be used interoperably in both EVM and
Expand All @@ -14,7 +14,7 @@
serves as an interpreter between the two "languages" used in either
execution environment.

## Why Pointer Contracts

Check warning on line 17 in learn/pointers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/pointers.mdx#L17

Use sentence case for headings: 'Why Pointer Contracts'.

![Without Pointer Contracts](/assets/pointer-contracts-without.png)
*A world without pointer contracts*
Expand All @@ -31,7 +31,7 @@
![With Pointer Contracts](/assets/pointer-contracts-simplified.png)
*With pointer contracts, all tokens can be accessed by wallets of either environment*

## How Pointer Contracts Work

Check warning on line 34 in learn/pointers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/pointers.mdx#L34

Use sentence case for headings: 'How Pointer Contracts Work'.

![How Pointer Contracts Work](/assets/pointer-contracts-how-it-works.png)
*Pointer contracts enable seamless interoperability*
Expand Down
Loading
Loading