Skip to content
Open
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
4 changes: 3 additions & 1 deletion .github/styles/Sei/Terminology.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ swap:
'the Sei blockchain': Sei
'Sei [Cc]hain': Sei
'gas fees?': gas
'\bCW\b': CosmWasm
# Bare 'CW' is accepted shorthand for CosmWasm here — the standard names
# CW20/CW721/CW1155 plus phrases like "CW pointer", "CW-based", and "CW NFT".
# CosmWasm casing is still enforced by the rule below, so we don't flag bare CW.
'[Cc]osmwasm': CosmWasm
'[Mm]etamask': MetaMask
'Sei-?[Jj][Ss]': sei-js
Expand Down
2 changes: 1 addition & 1 deletion ai/cambrian-agent-kit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ This tutorial guides you through:
- Node.js & npm installed
- SEI wallet private key
- OpenAI API key (for AI integrations)
- **Minimum SEI balance**: Ensure you have sufficient SEI for gas fees
- **Minimum SEI balance**: Ensure you have sufficient SEI for gas

### 2. Project Setup

Expand Down
4 changes: 2 additions & 2 deletions ai/x402.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
---
x402 Protocol brings HTTP micro payments to Sei, enabling you to monetize APIs, premium content, and digital services with instant, low-cost payments. Whether you're building AI APIs, data feeds, or premium content platforms, x402 makes it simple to add payment gates to any HTTP endpoint.

**Works with Sei's advantages:** Sei's fast finality, low gas fees, and EVM compatibility make it perfect for micro payments. x402 leverages these features to enable seamless payment flows that complete in milliseconds.
**Works with Sei's advantages:** Sei's fast finality, low gas, and EVM compatibility make it perfect for micro payments. x402 leverages these features to enable seamless payment flows that complete in milliseconds.


<Info>

**Why x402 on Sei?**

- **Fast & Cheap Payments**: Sei's 400ms finality and low gas fees make micropayments practical. Perfect for pay-per-request APIs and streaming content.
- **Fast & Cheap Payments**: Sei's 400ms finality and low gas make micropayments practical. Perfect for pay-per-request APIs and streaming content.
- **EVM Compatible**: Use familiar tools like Viem, Ethers.js, and Hardhat. All existing Ethereum tooling works seamlessly on Sei.
- **Built-in Wallet Support**: Integrates with Sei wallets, MetaMask, and any EIP-6963 compatible wallet for smooth user experiences.

</Info>

## Use Cases on Sei

Check warning on line 22 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L22

Use sentence case for headings: 'Use Cases on Sei'.

The x402 protocol enables a wide range of monetization strategies for web services and APIs:

Expand All @@ -32,14 +32,14 @@

The `sei-js` library provides a suite of packages to simplify working with x402 on Sei. You can find more details in the [sei-js x402 repository](https://github.com/sei-protocol/sei-x402).

### Core Concepts

Check warning on line 35 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L35

Use sentence case for headings: 'Core Concepts'.

- [**Protocol Overview**](https://github.com/sei-protocol/sei-x402/blob/main/docs/core-concepts/client-server.md): Learn about the architecture of x402.
- [**Quickstart Guide**](https://github.com/sei-protocol/sei-x402/blob/main/docs/getting-started/quickstart-for-sellers.md): Build your first paid API.
- [**Facilitators**](https://github.com/sei-protocol/sei-x402/blob/main/docs/core-concepts/facilitator.md): Understanding payment facilitators.
- [**Client Integration**](https://github.com/sei-protocol/sei-x402/blob/main/docs/getting-started/quickstart-for-buyers.md): How to integrate x402 in your frontend.

### Available Packages

Check warning on line 42 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L42

Use sentence case for headings: 'Available Packages'.

- [**x402**](https://www.npmjs.com/package/@sei-js/x402): The core protocol implementation.
- [**x402-fetch**](https://www.npmjs.com/package/@sei-js/x402-fetch): A fetch wrapper for making x402-compliant requests.
Expand All @@ -52,7 +52,7 @@

---

## Axiom Kit Integration

Check warning on line 55 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L55

Use sentence case for headings: 'Axiom Kit Integration'.

While you can build x402 integrations using standard tools and the libraries mentioned above, you can also optionally use Axiom Kit for a more agent-centric approach. This guide demonstrates an end-to-end x402 (HTTP 402 Payment Required) micropayment flow on the Sei testnet using AxiomKit.

Expand All @@ -60,7 +60,7 @@

x402 is an open standard protocol for internet-native payments that enables users to send and receive payments globally in a simple, secure, and interoperable manner. The protocol leverages the HTTP 402 status code ("Payment Required") to facilitate blockchain-based micropayments directly through HTTP requests.

#### Key Features of x402:

Check warning on line 63 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L63

Use sentence case for headings: 'Key Features of x402:'.

- **HTTP-Native**: Uses standard HTTP status codes and headers
- **Blockchain Integration**: Supports multiple blockchain networks
Expand All @@ -68,7 +68,7 @@
- **Interoperable**: Works across different payment schemes and networks
- **Micropayment Support**: Designed for small, frequent transactions

### Protocol Overview

Check warning on line 71 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L71

Use sentence case for headings: 'Protocol Overview'.

The x402 protocol follows a specific flow:

Expand All @@ -82,18 +82,18 @@

Axiom is a blockchain interaction framework that provides tools and libraries for building decentralized applications. In this implementation, Axiom integrates with x402 to enable seamless blockchain payments within Sei network applications.

#### Axiom Components Used:

Check warning on line 85 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L85

Use sentence case for headings: 'Axiom Components Used:'.

- **@axiomkit/core**: Core framework for building blockchain agents
- **@axiomkit/sei**: Sei blockchain integration
- **AxiomSeiWallet**: Wallet management for Sei transactions
- **Context and Actions**: Framework for building interactive blockchain agents

### Sei Blockchain Implementation

Check warning on line 92 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L92

Use sentence case for headings: 'Sei Blockchain Implementation'.

This implementation uses the Sei testnet for x402 payments with the following configuration:

#### Network Configuration

Check warning on line 96 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L96

Use sentence case for headings: 'Network Configuration'.

```typescript
export const X402_CONFIG = {
Expand All @@ -107,11 +107,11 @@
};
```

### Technical Architecture

Check warning on line 110 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L110

Use sentence case for headings: 'Technical Architecture'.

The x402 implementation consists of several key components:

#### 1. Payment Challenge Generation

Check warning on line 114 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L114

Use sentence case for headings: '1. Payment Challenge Generation'.

```typescript
function generatePaymentChallenge() {
Expand Down Expand Up @@ -142,7 +142,7 @@
}
```

#### 2. Payment Verification

Check warning on line 145 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L145

Use sentence case for headings: '2. Payment Verification'.

```typescript
async function verifyPayment(paymentHeader: string) {
Expand All @@ -163,7 +163,7 @@
}
```

#### 3. Axiom Agent Integration

Check warning on line 166 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L166

Use sentence case for headings: '3. Axiom Agent Integration'.

The Axiom agent handles the complete x402 flow:

Expand Down Expand Up @@ -201,16 +201,16 @@
});
```

### Payment Flow

Check warning on line 204 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L204

Use sentence case for headings: 'Payment Flow'.

#### 1. Initial Request

Check warning on line 206 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L206

Use sentence case for headings: '1. Initial Request'.

```
Client → GET /api/weather
Server → 402 Payment Required + Payment Challenge
```

#### 2. Payment Challenge Response

Check warning on line 213 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L213

Use sentence case for headings: '2. Payment Challenge Response'.

```json
{
Expand All @@ -236,7 +236,7 @@
}
```

#### 3. Payment Execution

Check warning on line 239 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L239

Use sentence case for headings: '3. Payment Execution'.

The Axiom agent executes a USDC transfer on Sei testnet:

Expand Down Expand Up @@ -264,16 +264,16 @@
});
```

#### 4. Payment Proof Submission

Check warning on line 267 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L267

Use sentence case for headings: '4. Payment Proof Submission'.

```
Client → GET /api/weather + X-Payment Header (base64 encoded payment proof)
Server → Verifies payment + Returns weather data
```

### Code Examples

Check warning on line 274 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L274

Use sentence case for headings: 'Code Examples'.

#### Complete Weather API Implementation

Check warning on line 276 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L276

Use sentence case for headings: 'Complete Weather API Implementation'.

```typescript
export async function GET(req: NextRequest) {
Expand Down Expand Up @@ -309,7 +309,7 @@
}
```

#### Axiom Agent Weather Action

Check warning on line 312 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L312

Use sentence case for headings: 'Axiom Agent Weather Action'.

```typescript
action({
Expand Down Expand Up @@ -392,29 +392,29 @@
});
```

### Security Considerations

Check warning on line 395 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L395

Use sentence case for headings: 'Security Considerations'.

#### Payment Verification

Check warning on line 397 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L397

Use sentence case for headings: 'Payment Verification'.

- **On-chain Verification**: All payments are verified against the Sei blockchain.
- **Transaction Receipt Validation**: Ensures transaction success and proper recipient.
- **Payment Caching**: Prevents double-spending by caching verified payments.
- **Reference Validation**: Unique payment references prevent replay attacks.

#### Network Security

Check warning on line 404 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L404

Use sentence case for headings: 'Network Security'.

- **HTTPS Required**: All API communications use secure connections.
- **Base64 Encoding**: Payment proofs are base64 encoded for safe transmission.
- **Timeout Handling**: Payment challenges include timeout mechanisms.
- **Error Handling**: Comprehensive error handling prevents information leakage.

#### Wallet Security

Check warning on line 411 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L411

Use sentence case for headings: 'Wallet Security'.

- **Private Key Management**: Private keys are stored securely in environment variables.
- **Transaction Signing**: All transactions are properly signed before submission.
- **Balance Validation**: Sufficient balance checks before payment execution.

### Tutorials & Resources

Check warning on line 417 in ai/x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

ai/x402.mdx#L417

Use sentence case for headings: 'Tutorials & Resources'.

- **[Sei-js X402 Repository](https://github.com/sei-protocol/sei-x402)**: Comprehensive guide on using the x402 protocol with the sei-js library, including package details and examples.
- **[AxiomKit X402 Demo Repository](https://github.com/AxiomKit/axiomkit-showcase)**: The complete source code for the Axiom integration demo used in this guide, including installation and configuration instructions.
2 changes: 1 addition & 1 deletion evm/ai-tooling/cambrian-agent-kit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Cambrian Agent Kit is a developer SDK for building powerful, autonomous AI agents and agentic chatbots on the SEI blockchain. It lets you interact with DeFi protocols (Takara, Silo, Citrex, Symphony), manage SEI tokens and NFTs, and seamlessly integrate AI workflows. In this tutorial, you'll learn how to set up the kit, run your first agent, and use it for real DeFi use cases—customized for your needs. To understand more and deep dive into how it works under the hood, please refer to the [Cambrian Agent Kit Documentation](https://deepwiki.com/CambrianAgents/sei-agent-kit/1-overview).

## Supported Features

Check warning on line 11 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L11

Use sentence case for headings: 'Supported Features'.

The SEI Agent Kit supports a comprehensive set of features for blockchain agent development:

Expand Down Expand Up @@ -44,16 +44,16 @@

</Info>

## Hands-on Tutorial

Check warning on line 47 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L47

Use sentence case for headings: 'Hands-on Tutorial'.

### 1. Prerequisites

- Node.js & npm installed
- SEI wallet private key
- OpenAI API key (for AI integrations)
- **Minimum SEI balance**: Ensure you have sufficient SEI for gas fees
- **Minimum SEI balance**: Ensure you have sufficient SEI for gas

### 2. Project Setup

Check warning on line 56 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L56

Use sentence case for headings: '2. Project Setup'.

```bash
git clone https://github.com/CambrianAgents/sei-agent-kit.git
Expand All @@ -77,7 +77,7 @@

</Warning>

### 3. Running Your First Agent

Check warning on line 80 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L80

Use sentence case for headings: '3. Running Your First Agent'.

```bash
npm run test
Expand Down Expand Up @@ -167,9 +167,9 @@

</Info>

### 4. Explore Core Features & Protocols

Check warning on line 170 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L170

Use sentence case for headings: '4. Explore Core Features & Protocols'.

#### a) Check Token Balance with Error Handling

Check warning on line 172 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L172

Use sentence case for headings: 'a) Check Token Balance with Error Handling'.

```typescript
import { SeiAgentKit } from './src/agent';
Expand Down Expand Up @@ -199,7 +199,7 @@
}
```

#### b) Safe Token Swapping with Symphony

Check warning on line 202 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L202

Use sentence case for headings: 'b) Safe Token Swapping with Symphony'.

```typescript
async function safeSwap() {
Expand Down Expand Up @@ -250,7 +250,7 @@

</Warning>

#### c) Liquid Staking with Silo Protocol

Check warning on line 253 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L253

Use sentence case for headings: 'c) Liquid Staking with Silo Protocol'.

```typescript
async function stakingWithSilo() {
Expand Down Expand Up @@ -292,7 +292,7 @@

</Info>

#### d) Lending/Borrowing with Takara Protocol

Check warning on line 295 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L295

Use sentence case for headings: 'd) Lending/Borrowing with Takara Protocol'.

```typescript
async function takaraLending() {
Expand Down Expand Up @@ -332,7 +332,7 @@
}
```

#### e) Perpetual Trading with Citrex Markets

Check warning on line 335 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L335

Use sentence case for headings: 'e) Perpetual Trading with Citrex Markets'.

```typescript
async function citrexTrading() {
Expand Down Expand Up @@ -370,9 +370,9 @@

<Info>See `/tools/` for more advanced protocol integrations!</Info>

## Error Handling & Troubleshooting

Check warning on line 373 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L373

Use sentence case for headings: 'Error Handling & Troubleshooting'.

### Common Error Types

Check warning on line 375 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L375

Use sentence case for headings: 'Common Error Types'.

<Info>
**Comprehensive Error Handling Examples:**
Expand Down Expand Up @@ -416,7 +416,7 @@

</Info>

### Transaction Monitoring

Check warning on line 419 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L419

Use sentence case for headings: 'Transaction Monitoring'.

```typescript
async function monitorTransaction(txHash: string) {
Expand Down Expand Up @@ -450,7 +450,7 @@
}
```

### Troubleshooting Guide

Check warning on line 453 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L453

Use sentence case for headings: 'Troubleshooting Guide'.

| Issue | Cause | Solution |
| --- | --- | --- |
Expand All @@ -473,9 +473,9 @@
# Use Seiscan: https://seiscan.io/
```

### 5. Advanced Features & Customization

Check warning on line 476 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L476

Use sentence case for headings: '5. Advanced Features & Customization'.

#### Multi-Protocol Strategy Example

Check warning on line 478 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L478

Use sentence case for headings: 'Multi-Protocol Strategy Example'.

```typescript
async function deFiStrategy() {
Expand Down Expand Up @@ -507,7 +507,7 @@
}
```

#### Monitoring & Alerts:

Check warning on line 510 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L510

Use sentence case for headings: 'Monitoring & Alerts:'.

```typescript
// Set up monitoring for your agent
Expand All @@ -531,6 +531,6 @@
}
```

#### Custom Protocol Integration

Check warning on line 534 in evm/ai-tooling/cambrian-agent-kit.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/ai-tooling/cambrian-agent-kit.mdx#L534

Use sentence case for headings: 'Custom Protocol Integration'.

To extend the Cambrian Agent Kit for your own protocol, please follow this repository which explains how to add plugins to the agent kit so that it can support your protocol: [Cambrian Agents Plugin Guide](https://github.com/CambrianAgents/cambrian-plugin)
2 changes: 1 addition & 1 deletion evm/bridging/layerzero.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

This guide provides a comprehensive, step-by-step tutorial for integrating LayerZero V2 with the SEI blockchain. By the end of this guide, you will understand how to create, deploy, and manage omnichain tokens that can seamlessly move between SEI and any other LayerZero-supported blockchain.

### What This Guide Covers

Check warning on line 11 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L11

Use sentence case for headings: 'What This Guide Covers'.

- **Understanding LayerZero**: Core concepts and architecture
- **Project Setup**: Creating a LayerZero-enabled project from scratch
Expand All @@ -20,21 +20,21 @@

- Basic knowledge of Solidity and smart contracts
- Node.js and npm installed
- A wallet with SEI and other chain tokens for gas fees
- A wallet with SEI and other chain tokens for gas
- Familiarity with Hardhat or Foundry

## What is LayerZero?

Check warning on line 26 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L26

Use sentence case for headings: 'What is LayerZero?'.

LayerZero is an **omnichain interoperability protocol** that enables secure, permissionless communication between different blockchains. Think of it as a universal translator that allows blockchains to talk to each other.

### Core Concepts

Check warning on line 30 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L30

Use sentence case for headings: 'Core Concepts'.

- **Endpoints**: Immutable smart contracts deployed on each blockchain that serve as entry/exit points for messages
- **Messages**: Data packets sent between blockchains containing instructions or information
- **Security Stack**: Customizable verification system ensuring message authenticity
- **Omnichain Applications**: Smart contracts that can operate across multiple blockchains

### Key Applications

Check warning on line 37 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L37

Use sentence case for headings: 'Key Applications'.

- **Omnichain Fungible Tokens (OFT)**: Tokens that exist across multiple chains with unified supply
- **Omnichain NFTs (ONFT)**: NFTs that can move between blockchains
Expand All @@ -42,7 +42,7 @@
- **Unified Governance**: DAOs that function across chains
- **Message Passing**: Send arbitrary data between blockchains

## SEI Network Information

Check warning on line 45 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L45

Use sentence case for headings: 'SEI Network Information'.

<Info>
**SEI Mainnet Configuration**
Expand All @@ -56,7 +56,7 @@

</Info>

### Contract Deployments

Check warning on line 59 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L59

Use sentence case for headings: 'Contract Deployments'.

The following are the official LayerZero V2 protocol contract addresses deployed on Sei networks.

Expand Down Expand Up @@ -108,7 +108,7 @@

</Accordion>

## Step 1: Project Setup

Check warning on line 111 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L111

Use sentence case for headings: 'Step 1: Project Setup'.

### Project scaffold

Expand All @@ -130,7 +130,7 @@

At a minimum, you need to have the `PRIVATE_KEY`. RPC URLs are optional, but strongly recommended. If you don't provide them, public RPCs will be used, but public RPCs can be unreliable or slow, leading to long waiting times for transactions to be confirmed or, at worst, cause your transactions to fail.

## Step 2: Configure Networks

Check warning on line 133 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L133

Use sentence case for headings: 'Step 2: Configure Networks'.

### Hardhat network config

Expand All @@ -154,7 +154,7 @@
}
```

### LayerZero wiring config

Check warning on line 157 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L157

Use sentence case for headings: 'LayerZero wiring config'.

Modify your `layerzero.config.ts` file to include the chains and channel security settings you want for each connection:

Expand Down Expand Up @@ -228,11 +228,11 @@

</Info>

## Step 3: Create Utility Tasks

Check warning on line 231 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L231

Use sentence case for headings: 'Step 3: Create Utility Tasks'.

Before deployment, let's create a utility task for minting tokens that we'll need later.

### Create Minting Task

Check warning on line 235 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L235

Use sentence case for headings: 'Create Minting Task'.

Create `tasks/mint.ts`:

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

### Update Hardhat Configuration

Check warning on line 270 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L270

Use sentence case for headings: 'Update Hardhat Configuration'.

Now update your `hardhat.config.ts` to import the mint task:

Expand Down Expand Up @@ -349,7 +349,7 @@

<Warning>**Important**: You must create and import the mint task before deployment, otherwise Hardhat will throw an error when trying to resolve the task dependencies during compilation.</Warning>

## Step 4: Smart Contract Development

Check warning on line 352 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L352

Use sentence case for headings: 'Step 4: Smart Contract Development'.

### The token contract

Expand Down Expand Up @@ -391,7 +391,7 @@

</Warning>

### Understanding OFT Functions

Check warning on line 394 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L394

Use sentence case for headings: 'Understanding OFT Functions'.

Key inherited functions from the OFT contract:

Expand All @@ -403,7 +403,7 @@
| `_lzReceive()` | Internal function that receives messages |


## Step 5: Deployment Process

Check warning on line 406 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L406

Use sentence case for headings: 'Step 5: Deployment Process'.

### Deploy

Expand All @@ -415,7 +415,7 @@

<Warning>Fund your deployer with native gas tokens beforehand.</Warning>

## Step 6: Wire the Contracts

Check warning on line 418 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L418

Use sentence case for headings: 'Step 6: Wire the Contracts'.

After deployment, contracts need to be connected:

Expand All @@ -425,7 +425,7 @@
npx hardhat lz:oapp:wire --oapp-config layerzero.config.ts
```

### Verify Configuration

Check warning on line 428 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L428

Use sentence case for headings: 'Verify Configuration'.

Verify peers:

Expand All @@ -435,7 +435,7 @@

This command will show you the current LayerZero wiring configuration, including the connected chains and their peer addresses.

## Step 7: Mint Initial Tokens

Check warning on line 438 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L438

Use sentence case for headings: 'Step 7: Mint Initial Tokens'.

Before transferring, you need tokens to send. Let's mint some tokens on SEI:

Expand All @@ -444,13 +444,13 @@
npx hardhat mint --to 0xYourAddress --amount 10000 --network sei-mainnet
```

## Step 8: Transfer Tokens Cross-Chain

Check warning on line 447 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L447

Use sentence case for headings: 'Step 8: Transfer Tokens Cross-Chain'.

### Calling send

Since the `send` logic has already been defined, we'll instead view how the function should be called.

#### Option 1: Hardhat Task

Check warning on line 453 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L453

Use sentence case for headings: 'Option 1: Hardhat Task'.

Create `tasks/sendOFT.ts`:

Expand Down Expand Up @@ -554,7 +554,7 @@
--network sei-mainnet
```

#### Option 2: Foundry Script

Check warning on line 557 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L557

Use sentence case for headings: 'Option 2: Foundry Script'.

Create `script/SendOFT.s.sol`:

Expand Down Expand Up @@ -630,11 +630,11 @@
forge script script/SendOFT.s.sol:SendOFT --rpc-url $RPC_URL_SEI --broadcast
```

## Step 9: Done!

Check warning on line 633 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L633

Use sentence case for headings: 'Step 9: Done!'.

You've issued an omnichain token and bridged it from Sei Mainnet to Optimism. Customize supply logic, fees, or add more chains by applying changes to the core contract, redeploying, and repeating the wiring step.

### Track Your Transaction

Check warning on line 637 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L637

Use sentence case for headings: 'Track Your Transaction'.

1. Visit https://layerzeroscan.com/tx/YOUR_TX_HASH
2. You'll see:
Expand All @@ -646,7 +646,7 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 649 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L649

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

<Danger>
**Quote Send Reverts**
Expand Down Expand Up @@ -699,14 +699,14 @@

</Tip>

## Next Steps

Check warning on line 702 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L702

Use sentence case for headings: 'Next Steps'.

- **Add More Chains**: Expand to Arbitrum, Base, Polygon, etc.
- **Advanced Features**: Implement rate limiting, pausable transfers, fee collection
- **Composed Messages**: Execute actions after token arrival
- **Build a UI**: Create a frontend for easy transfers

### Learn More

Check warning on line 709 in evm/bridging/layerzero.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/bridging/layerzero.mdx#L709

Use sentence case for headings: 'Learn More'.

- See the [Configuring Pathways](https://docs.layerzero.network/v2/get-started/create-lz-oapp/configuring-pathways) section to learn more about managing your OFTs across the entire network mesh.
- See the [Available DVNs](https://docs.layerzero.network/v2/deployments/dvn-addresses?chains=sei) and [Executor](https://docs.layerzero.network/v2/deployments/deployed-contracts?chains=sei) to configure between.
Expand Down
4 changes: 2 additions & 2 deletions evm/differences-with-ethereum.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,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 50 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L50

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

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

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

## Opcode Differences

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L66

Use sentence case for headings: 'Opcode Differences'.

| Opcode | Sei EVM | Ethereum | Notes |
| --- | --- | --- | --- |
Expand All @@ -77,10 +77,10 @@
| 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 80 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L80

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 really have the
validator like Proof of Stake (PoS) Ethereum does, it doesn't have the
"randomness" artifact that can be set as `PREVRANDAO`'s return value. On Sei,
`PREVRANDAO` returns a value derived from the current block time. For strong
randomness needs in contract logic, use a verifiable randomness oracle (as is
Expand All @@ -91,19 +91,19 @@
Coinbase address on Sei is always set to (the EVM address of) the global fee
collector.

## State Root

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L94

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 101 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L101

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 106 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L106

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 @@ -128,7 +128,7 @@
value: '"0.007500000000000000"'
```

## Non-EVM Transactions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L131

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 @@ -142,7 +142,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 145 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L145

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 @@ -150,10 +150,10 @@

However, on Sei, the block proposer would broadcast first and only execute the
proposal if it's accepted (i.e. every node would execute the block at roughly
the same time), so Sei does not really have a window when "pending state"
the same time), so Sei does not have a window when "pending state"
exists.

## Gas Model & Fees

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L156

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 @@ -175,7 +175,7 @@

</Info>

## SSTORE Gas Cost

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L178

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.

Expand All @@ -185,7 +185,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 188 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L188

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

Sei’s EVM fully supports the common token standards:

Expand All @@ -195,7 +195,7 @@

Existing OpenZeppelin contracts and tools work unchanged.

## Testing & Migration Checklist

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L198

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
2 changes: 1 addition & 1 deletion evm/evm-foundry.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

</Tip>

## Table of Contents

Check warning on line 19 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L19

Use sentence case for headings: 'Table of Contents'.

- [Prerequisites](#prerequisites)
- [Setting Up Your Development Environment](#setting-up-your-development-environment)
Expand All @@ -33,10 +33,10 @@

- [Foundry](https://book.getfoundry.sh/) installed on your system
- A basic understanding of Solidity and smart contract development
- A wallet with SEI tokens for gas fees
- A wallet with SEI tokens for gas
- [Node.js](https://nodejs.org/) (v18.0.0 or later) for ethers.js interactions

## Setting Up Your Development Environment

Check warning on line 39 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L39

Use sentence case for headings: 'Setting Up Your Development Environment'.

First, let's install Foundry if you haven't already. Follow the [installation guide](https://book.getfoundry.sh/getting-started/installation) or use the quick install command:

Expand Down Expand Up @@ -90,7 +90,7 @@

<Warning>Add `.env` to your `.gitignore` file to prevent committing sensitive information such as your `PRIVATE_KEY` and potentially lose funds.</Warning>

## Using OpenZeppelin Contracts

Check warning on line 93 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L93

Use sentence case for headings: 'Using OpenZeppelin Contracts'.

OpenZeppelin provides a library of secure, tested smart contract components. Let's install OpenZeppelin contracts:

Expand All @@ -104,7 +104,7 @@
forge remappings > remappings.txt
```

## Creating and Deploying Smart Contracts

Check warning on line 107 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L107

Use sentence case for headings: 'Creating and Deploying Smart Contracts'.

Let's create different types of smart contracts. Choose from the tabs below based on what you want to build:

Expand Down Expand Up @@ -349,7 +349,7 @@
</Tab>
</Tabs>

## Testing Your Smart Contracts

Check warning on line 352 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L352

Use sentence case for headings: 'Testing Your Smart Contracts'.

Foundry provides excellent testing capabilities. Let's create comprehensive tests for our contracts.

Expand Down Expand Up @@ -552,11 +552,11 @@
forge test -vvv
```

## Deploying to Sei Testnet and Mainnet

Check warning on line 555 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L555

Use sentence case for headings: 'Deploying to Sei Testnet and Mainnet'.

Now let's deploy our contracts to the Sei networks. You can use either Forge scripts or direct deployment commands.

### Using Forge Scripts (Recommended)

Check warning on line 559 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L559

Use sentence case for headings: 'Using Forge Scripts (Recommended)'.

Deploy to Sei testnet:

Expand All @@ -570,7 +570,7 @@
forge script script/DeployCounter.s.sol --rpc-url $SEI_MAINNET_RPC --private-key $PRIVATE_KEY --broadcast
```

### Using Direct Forge Create Commands

Check warning on line 573 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L573

Use sentence case for headings: 'Using Direct Forge Create Commands'.

Alternatively, you can deploy directly:

Expand All @@ -595,11 +595,11 @@
Transaction hash: 0xYOUR_TX_HASH
```

## Interacting with Deployed Contracts

Check warning on line 598 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L598

Use sentence case for headings: 'Interacting with Deployed Contracts'.

Once deployed, you can interact with your contracts using Foundry's `cast` tool or ethers.js.

### Using Cast Commands

Check warning on line 602 in evm/evm-foundry.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-foundry.mdx#L602

Use sentence case for headings: 'Using Cast Commands'.

```bash
# Query the counter value
Expand Down
10 changes: 5 additions & 5 deletions evm/evm-hardhat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

</Tip>

## Table of Contents

Check warning on line 19 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L19

Use sentence case for headings: 'Table of Contents'.

- [Prerequisites](#prerequisites)
- [Setting Up Your Development Environment](#setting-up-your-development-environment)
Expand All @@ -34,7 +34,7 @@
- [npm](https://www.npmjs.com/) (v7.0.0 or later) or [yarn](https://yarnpkg.com/)
- A code editor (VS Code recommended)

## Setting Up Your Development Environment

Check warning on line 37 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L37

Use sentence case for headings: 'Setting Up Your Development Environment'.

Let's create a new project and set up Hardhat:

Expand Down Expand Up @@ -123,11 +123,11 @@

<Warning>Use a dedicated, throwaway deploy key funded with only what you need — never a personal wallet holding real funds.</Warning>

## Using OpenZeppelin Contracts

Check warning on line 126 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L126

Use sentence case for headings: 'Using OpenZeppelin Contracts'.

OpenZeppelin provides a library of secure, tested smart contract components that you can use to build your applications. The `@openzeppelin/contracts` package was already installed during setup, so you're ready to import its contracts directly.

## Creating and Deploying an ERC20 Token, ERC721 NFT or an Upgradeable UUPS Token

Check warning on line 130 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L130

Use sentence case for headings: 'Creating and Deploying an ERC20 Token, ERC721 NFT or an Upgradeable UUPS Token'.

<Tabs>
<Tab title="ERC20">
Expand Down Expand Up @@ -283,7 +283,7 @@
import { network } from 'hardhat';

// Hardhat 3 exposes ethers through a network connection rather than a global import
const { ethers } = await network.getOrCreate();
const { ethers } = await network.create();

const [deployer] = await ethers.getSigners();
console.log('Deploying contracts with the account:', deployer.address);
Expand Down Expand Up @@ -395,7 +395,7 @@
```typescript title="scripts/deploy-upgradeable-token.ts"
import { network } from 'hardhat';

const { ethers } = await network.getOrCreate();
const { ethers } = await network.create();

const [deployer] = await ethers.getSigners();
console.log('Deploying contracts with the account:', deployer.address);
Expand Down Expand Up @@ -459,7 +459,7 @@
```typescript title="scripts/upgrade-token.ts"
import { network } from 'hardhat';

const { ethers } = await network.getOrCreate();
const { ethers } = await network.create();

// !! REPLACE WITH YOUR PROXY ADDRESS from the deploy step !!
const PROXY_ADDRESS = '0xYOUR_PROXY_CONTRACT_ADDRESS_HERE';
Expand Down Expand Up @@ -492,7 +492,7 @@
</Tab>
</Tabs>

## Testing Your Smart Contracts

Check warning on line 495 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L495

Use sentence case for headings: 'Testing Your Smart Contracts'.

Hardhat makes it easy to test your contracts before deploying them. Create a test file `test/sei-token-test.ts`:

Expand All @@ -509,7 +509,7 @@

beforeEach(async function () {
// Hardhat 3 exposes ethers through a network connection
({ ethers } = await network.getOrCreate());
({ ethers } = await network.create());

// Get signers
[owner, addr1, addr2] = await ethers.getSigners();
Expand Down Expand Up @@ -576,11 +576,11 @@
npx hardhat test
```

## Deploying to Sei Testnet and Mainnet

Check warning on line 579 in evm/evm-hardhat.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-hardhat.mdx#L579

Use sentence case for headings: 'Deploying to Sei Testnet and Mainnet'.

Once you've tested your contracts, you can deploy them to the Sei testnet or mainnet. To deploy, you'll need:

1. SEI tokens in your wallet for gas fees
1. SEI tokens in your wallet for gas
2. Your private key stored in the encrypted keystore (`npx hardhat keystore set SEI_PRIVATE_KEY`) — or exported as a `SEI_PRIVATE_KEY` environment variable in CI

Deploy to the testnet:
Expand Down
2 changes: 1 addition & 1 deletion evm/indexer-providers/moralis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Moralis provides a comprehensive Backend-as-a-Service (BaaS) platform specifically designed for developers. By abstracting away the complexity of blockchain integration and offering a suite of APIs, SDKs, and scalable infrastructure, Moralis allows developers to focus on building the core functionality of their applications.

## What You'll Learn

Check warning on line 10 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L10

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

By the end of this tutorial, you'll understand:

Expand All @@ -26,7 +26,7 @@
3. **Package Manager**: npm, yarn, or pnpm
4. **TypeScript**: Basic knowledge (optional but recommended)

### Sei Network Configuration

Check warning on line 29 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L29

Use sentence case for headings: 'Sei Network Configuration'.

<Info>Following is the configuration details of Sei for Moralis integration:</Info>

Expand All @@ -40,7 +40,7 @@
- Chain ID: 1328 (0x530)
- RPC URL: https://evm-rpc-testnet.sei-apis.com

## Moralis APIs Overview

Check warning on line 43 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L43

Use sentence case for headings: 'Moralis APIs Overview'.

Moralis offers several powerful APIs that work seamlessly across multiple blockchains:

Expand All @@ -51,9 +51,9 @@
- **Price API**: Retrieve real-time and historical crypto token prices
- **DeFi API**: Query DeFi protocol data including pools, positions, and yields

## Setting Up Your Project

Check warning on line 54 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L54

Use sentence case for headings: 'Setting Up Your Project'.

### Install Moralis SDK

Check warning on line 56 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L56

Use sentence case for headings: 'Install Moralis SDK'.

First, create a new project and install the Moralis SDK:

Expand All @@ -73,13 +73,13 @@
npm install typescript ts-node @types/node --save-dev
```

### Get Your API Key

Check warning on line 76 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L76

Use sentence case for headings: 'Get Your API Key'.

1. Sign up at [moralis.io](https://moralis.io)
2. Navigate to "Project Settings"
3. Copy your API key from the dashboard

### Basic Configuration

Check warning on line 82 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L82

Use sentence case for headings: 'Basic Configuration'.

Create a `.env` file in your project root:

Expand All @@ -89,7 +89,7 @@
SEI_TESTNET_CHAIN_ID=0x530
```

## Initialize Moralis

Check warning on line 92 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L92

Use sentence case for headings: 'Initialize Moralis'.

Create an `index.ts` or `index.js` file:

Expand All @@ -108,7 +108,7 @@
initMoralis();
```

## Wallet Transactions API

Check warning on line 111 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L111

Use sentence case for headings: 'Wallet Transactions API'.

```typescript
// Get wallet transactions for Sei mainnet
Expand All @@ -132,7 +132,7 @@
getWalletTransactions(walletAddress);
```

## NFT Holders API

Check warning on line 135 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L135

Use sentence case for headings: 'NFT Holders API'.

```typescript
// Get NFTs owned by wallet address
Expand Down Expand Up @@ -168,7 +168,7 @@
};
```

## Transaction Details API

Check warning on line 171 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L171

Use sentence case for headings: 'Transaction Details API'.

```typescript
// Get detailed transaction information
Expand Down Expand Up @@ -256,7 +256,7 @@
};
```

## Complete Integration Example

Check warning on line 259 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L259

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

Here's a comprehensive example that brings everything together:

Expand Down Expand Up @@ -334,9 +334,9 @@
main();
```

## Working with Testnet

Check warning on line 337 in evm/indexer-providers/moralis.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/moralis.mdx#L337

Use sentence case for headings: 'Working with Testnet'.

<Warning>To switch to Sei testnet, simply change the chain ID in your API calls.</Warning>
<Warning>To switch to Sei testnet, change the chain ID in your API calls.</Warning>

```typescript
// Testnet configuration
Expand Down
4 changes: 2 additions & 2 deletions evm/indexer-providers/the-graph.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
infrastructure relies on a decentralized network of indexers, enabling your dapp
to become truly decentralized.

## Quick Start

Check warning on line 12 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L12

Use sentence case for headings: 'Quick Start'.

These subgraphs only take a few minutes to set up. To get started, follow these
three steps:
Expand All @@ -26,7 +26,7 @@

## 1. Initialize your subgraph project

### Create a subgraph on Subgraph Studio⁠

Check warning on line 29 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L29

Use sentence case for headings: 'Create a subgraph on Subgraph Studio⁠'.

Go to the [Subgraph Studio](https://thegraph.com/studio/) and connect your
wallet. Once your wallet is connected, you can begin by clicking "Create a
Expand All @@ -42,7 +42,7 @@
![CLI commands](/assets/ecosystem/resources/the-graph/cli_commands.png)
*CLI Commands*

### Install the Graph CLI⁠

Check warning on line 45 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L45

Use sentence case for headings: 'Install the Graph CLI⁠'.

On your local machine run the following:

Expand All @@ -50,7 +50,7 @@
npm install -g @graphprotocol/graph-cli
```

### Initialize your Subgraph⁠

Check warning on line 53 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L53

Use sentence case for headings: 'Initialize your Subgraph⁠'.

You can copy this directly from your subgraph page to include your specific
subgraph slug:
Expand All @@ -64,13 +64,13 @@
![CLI sample](/assets/ecosystem/resources/the-graph/cli_sample.png)
*CLI*

Simply have your contract verified on the block explorer and the CLI will
Have your contract verified on the block explorer and the CLI will
automatically obtain the ABI and set up your subgraph. The default settings will
generate an entity for each event.

## 2. Deploy & Publish

Check warning on line 71 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L71

Use sentence case for headings: '2. Deploy & Publish'.

### Deploy to Subgraph Studio⁠

Check warning on line 73 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L73

Use sentence case for headings: 'Deploy to Subgraph Studio⁠'.

First run these commands:

Expand Down Expand Up @@ -100,7 +100,7 @@
![Playground](/assets/ecosystem/resources/the-graph/playground.png)
*Run your graphql query in Studio*

### Publish Your Subgraph to The Graph's Decentralized Network

Check warning on line 103 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L103

Use sentence case for headings: 'Publish Your Subgraph to The Graph's Decentralized Network'.

Once your subgraph is ready to be put into production, you can publish it to the
decentralized network. On your subgraph's page in Subgraph Studio, click on the
Expand All @@ -124,7 +124,7 @@

<Warning>**Note:** The Graph's smart contracts are all on Arbitrum One, even though > your subgraph is indexing data from Ethereum, BSC or any other > [supported chain](https://thegraph.com/docs/en/developing/supported-networks/).</Warning>

## 3. Query your Subgraph

Check warning on line 127 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L127

Use sentence case for headings: '3. Query your Subgraph'.

Congratulations! You can now query your subgraph on the decentralized network!

Expand All @@ -142,7 +142,7 @@
The query URL for this subgraph is:
`https://gateway-arbitrum.network.thegraph.com/api/`**[api-key]**`/subgraphs/id/HdVdERFUe8h61vm2fDyycHgxjsde5PbB832NHgJfZNqK`

Now, you simply need to fill in your own API Key to start sending GraphQL
Now, you need to fill in your own API Key to start sending GraphQL
queries to this endpoint.

### Getting your own API Key
Expand All @@ -155,7 +155,7 @@

## Appendix

### Sample Query

Check warning on line 158 in evm/indexer-providers/the-graph.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/indexer-providers/the-graph.mdx#L158

Use sentence case for headings: 'Sample Query'.

This query shows the most expensive CryptoPunks sold.

Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/addr.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,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 Address Precompile Work?

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L13

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

The Address precompile at address `0x0000000000000000000000000000000000001004` exposes functions like `associate()`, `associatePubKey()`, `getSeiAddr()`, and `getEvmAddr()`.

Expand All @@ -18,14 +18,14 @@
- **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.

## Use Cases

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L21

Use sentence case for headings: 'Use Cases'.

- **Cross-Chain Identity:** Link EVM and Cosmos addresses for unified user experiences across both execution environments.
- **Address Resolution:** Build applications that can seamlessly work with both EVM and Cosmos address formats.
- **Wallet Integration:** Enable users to associate their addresses once and use both EVM and native Sei functionality.
- **DeFi Applications:** Create protocols that can interact with users regardless of their preferred address format.

## What You'll Learn in This Guide

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L28

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 @@ -39,7 +39,7 @@

The Address precompile exposes the following functions:

### Transaction Functions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L42

Use sentence case for headings: 'Transaction Functions'.

```solidity
/// Associates an account given it's signature of any custom message.
Expand All @@ -65,7 +65,7 @@
) external returns (string memory seiAddr, address evmAddr);
```

### Query Functions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L68

Use sentence case for headings: 'Query Functions'.

```solidity
/// Queries the corresponding Sei Address for some EVM address.
Expand All @@ -83,7 +83,7 @@
) external view returns (address response);
```

## Using the Precompile

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L86

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

### Setup

Expand All @@ -94,10 +94,10 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **EVM-compatible wallet**
- **SEI tokens** for gas fees
- **SEI tokens** for gas
- **Hardhat** development environment set up

#### Install Dependencies

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

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

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

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

#### Setup Hardhat Environment

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L115

Use sentence case for headings: 'Setup Hardhat Environment'.

Create a `hardhat.config.ts` file with the following content:

Expand Down Expand Up @@ -140,7 +140,7 @@
npx hardhat keystore set PRIVATE_KEY
```

#### Import Precompile Components

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L143

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

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

#### When Does Association Happen?

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L211

Use sentence case for headings: 'When Does Association Happen?'.

Address association between EVM and Cosmos addresses occurs automatically in most cases:

Expand All @@ -219,7 +219,7 @@
| **Manual (PubKey)** | associatePubKey() function | Compressed public key |


### How Association Works

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L222

Use sentence case for headings: 'How Association Works'.

**Automatic Association:**

Expand All @@ -233,7 +233,7 @@
- Use `associatePubKey()` for public key-based association
- Useful for advanced applications or when automatic association hasn't occurred

### Address Format Requirements

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L236

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

**EVM Addresses:**

Expand All @@ -246,9 +246,9 @@
- Validator addresses use `seivaloper1...` prefix
- Bech32 encoding format

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

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L249

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

### Associate Address with Signature

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L251

Use sentence case for headings: 'Associate Address with Signature'.

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

### Associate Address with Public Key

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L312

Use sentence case for headings: 'Associate Address with Public Key'.

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

### Query Sei Address from EVM Address

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L355

Use sentence case for headings: 'Query Sei Address from EVM Address'.

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

### Query EVM Address from Sei Address

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L401

Use sentence case for headings: 'Query EVM Address from Sei Address'.

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

### Complete Integration Example

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L447

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

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

## Security Considerations & Risks

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L698

Use sentence case for headings: 'Security Considerations & Risks'.

### Association Permanence

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L700

Use sentence case for headings: 'Association Permanence'.

- **Permanent Mapping:** Once addresses are associated, the mapping cannot be changed or removed
- **Single Association:** Each address can only be associated with one counterpart
- **Verification:** Always verify associations before depending on them in critical operations

### Signature Security

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L706

Use sentence case for headings: 'Signature Security'.

- **Custom Messages:** Use unique, timestamped messages to prevent replay attacks
- **Message Format:** Follow exact Ethereum Signed Message format for compatibility

## Troubleshooting

### Common Issues and Solutions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L713

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

#### Gas-Related Issues

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L715

Use sentence case for headings: 'Gas-Related Issues'.

```typescript
// Set appropriate gas limits for different operations
Expand All @@ -725,7 +725,7 @@
});
```

### Error Code Reference

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L728

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

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -736,29 +736,29 @@
| `invalid address format` | Wrong address format | Use proper EVM (0x...) or Sei (sei1...) format |


## Important Notes

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L739

Use sentence case for headings: 'Important Notes'.

<Info> Remember: Address associations are permanent and cannot be changed once created! </Info>

### Address Formats

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L743

Use sentence case for headings: 'Address Formats'.

- **EVM Addresses:** Use standard Ethereum format with `0x` prefix
- **Sei Addresses:** Use Cosmos format with `sei1` prefix for regular addresses
- **Case Sensitivity:** EVM addresses are case-insensitive, Sei addresses are case-sensitive

### Association Timing

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L749

Use sentence case for headings: 'Association Timing'.

- **Automatic:** Most users get associated automatically on their first transaction
- **Manual:** Use precompile functions for programmatic association or when automatic association hasn't occurred
- **Verification:** Always verify associations exist before depending on them

### Signature Requirements

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L755

Use sentence case for headings: 'Signature Requirements'.

- **Message Format:** Must include Ethereum Signed Message prefix for `associate()` function
- **Component Format:** v, r, s must be properly formatted hex strings
- **Replay Protection:** Use unique messages to prevent signature replay attacks

### Gas Considerations

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/addr.mdx#L761

Use sentence case for headings: 'Gas Considerations'.

- **Association operations:** ~200,000 gas limit recommended
- **Query operations:** Standard view function gas usage
Expand Down
14 changes: 7 additions & 7 deletions evm/precompiles/cosmwasm-precompiles/bank.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,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 Bank Precompile Work?

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L13

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

The bank precompile at address `0x0000000000000000000000000000000000001001` exposes functions like `send()`, `sendNative()`, `balance()`, `all_balances()`, and token metadata queries.

Expand All @@ -20,13 +20,13 @@

**When to use `send` vs `sendNative`:** `send` moves an arbitrary `denom` (any IBC or factory token) between two EVM addresses (`0x...`) by reading the balance directly from the bank module — no `msg.value` is attached. It is gated to the registered ERC20 native pointer for that denom, so it is typically invoked from the auto-deployed pointer contract rather than from arbitrary user code. `sendNative` is for sending native SEI (the attached `msg.value`) from the EVM caller to a Cosmos bech32 (`sei1...`) destination, which is useful for crossing the EVM→Cosmos boundary when the recipient has no associated EVM address (for example, paying a Cosmos-only contract or account).

## Use Cases

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

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

Use sentence case for headings: 'Use Cases'.

- **DeFi Applications:** Build decentralized finance protocols that can handle native SEI and Cosmos assets.
- **Portfolio Management:** Build tools to track and manage multi-asset portfolios across Cosmos and EVM.
- **Token Information Services:** Query comprehensive token metadata for UI display and analytics.

## What You'll Learn in This Guide

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L29

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 @@ -38,7 +38,7 @@

The bank precompile exposes the following functions:

### Transaction Functions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L41

Use sentence case for headings: 'Transaction Functions'.

```solidity
/// Sends non-native tokens from one address to another. Callable only by the
Expand All @@ -64,7 +64,7 @@
) payable external returns (bool success);
```

### Query Functions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L67

Use sentence case for headings: 'Query Functions'.

```solidity
/// Queries the balance of the given account for the specified denom.
Expand Down Expand Up @@ -112,7 +112,7 @@
) external view returns (uint256 response);
```

## Using the Precompile

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L115

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

### Setup

Expand All @@ -123,10 +123,10 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **EVM-compatible wallet**
- **SEI tokens** for gas fees and testing transfers
- **SEI tokens** for gas and testing transfers
- **Hardhat** for development and testing

#### Install Dependencies

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L129

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

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

#### Setup Hardhat Environment

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L144

Use sentence case for headings: 'Setup Hardhat Environment'.

Create a `hardhat.config.ts` file with the following content:

Expand Down Expand Up @@ -169,7 +169,7 @@
npx hardhat keystore set PRIVATE_KEY
```

#### Import Precompile Components

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L172

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

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

### Native SEI vs Custom Tokens

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L266

Use sentence case for headings: 'Native SEI vs Custom Tokens'.

**Native SEI Transfers:**

Expand All @@ -277,9 +277,9 @@
- Requires prior token approval or ownership
- Support various decimal configurations

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

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L280

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

### Send Native SEI Tokens

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L282

Use sentence case for headings: 'Send Native SEI Tokens'.

<Tabs>
<Tab title="JavaScript">
Expand All @@ -300,7 +300,7 @@
});

const receipt = await tx.wait();
console.log('Native SEI transfer successful:', receipt.transactionHash);
console.log('Native SEI transfer successful:', receipt.hash);
console.log(`Sent ${amountInSei} SEI to ${recipientAddress}`);
} catch (error) {
console.error('Native SEI transfer failed:', error);
Expand Down Expand Up @@ -330,7 +330,7 @@
</Tab>
</Tabs>

### Send Custom Tokens

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L333

Use sentence case for headings: 'Send Custom Tokens'.

<Tabs>
<Tab title="JavaScript">
Expand All @@ -357,7 +357,7 @@
);

const receipt = await tx.wait();
console.log('Custom token transfer successful:', receipt.transactionHash);
console.log('Custom token transfer successful:', receipt.hash);
console.log(`Sent ${amount} ${tokenDenom} from ${fromAddress} to ${toAddress}`);
```

Expand Down Expand Up @@ -407,7 +407,7 @@
</Tab>
</Tabs>

### Query Account Balance

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L410

Use sentence case for headings: 'Query Account Balance'.

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

### Query All Balances

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L467

Use sentence case for headings: 'Query All Balances'.

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

### Query Token Metadata

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L542

Use sentence case for headings: 'Query Token Metadata'.

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

### Complete Integration Example

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L625

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

<Tabs>
<Tab title="JavaScript">
Expand All @@ -643,16 +643,16 @@
// Send native SEI tokens
async sendSei(recipientAddress: string, amountInSei: string) {
try {
const amountInUsei = ethers.parseUnits(amountInSei, 18);
const amountInWei = ethers.parseUnits(amountInSei, 18);
const tx = await this.bank.sendNative(recipientAddress, {
value: amountInUsei,
value: amountInWei,
gasLimit: 100000
});

const receipt = await tx.wait();
return {
success: true,
transactionHash: receipt.transactionHash,
transactionHash: receipt.hash,
amount: amountInSei,
recipient: recipientAddress
};
Expand Down Expand Up @@ -715,7 +715,7 @@
const receipt = await tx.wait();
return {
success: true,
transactionHash: receipt.transactionHash,
transactionHash: receipt.hash,
from: fromAddress,
to: toAddress,
denom,
Expand Down Expand Up @@ -1103,15 +1103,15 @@
</Tab>
</Tabs>

## Security Considerations & Risks

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1106

Use sentence case for headings: 'Security Considerations & Risks'.

### Transaction Security

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1108

Use sentence case for headings: 'Transaction Security'.

- **Amount Validation:** Always validate transfer amounts and ensure sufficient balances
- **Address Verification:** Verify recipient addresses are valid before sending tokens
- **Reentrancy Protection:** Be aware of potential reentrancy when combining with other contracts

### Permission Management

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1114

Use sentence case for headings: 'Permission Management'.

```solidity
// Example of secure permission patterns
Expand All @@ -1129,9 +1129,9 @@

## Troubleshooting

### Common Issues and Solutions

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1132

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

#### Transaction Failures

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1134

Use sentence case for headings: 'Transaction Failures'.

```typescript
// Handle common transfer errors
Expand All @@ -1149,7 +1149,7 @@
}
```

#### Balance Query Issues

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1152

Use sentence case for headings: 'Balance Query Issues'.

```typescript
// Safe balance checking with error handling
Expand All @@ -1166,7 +1166,7 @@
}
```

### Error Code Reference

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1169

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

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -1177,7 +1177,7 @@
| `metadata not found` | Token metadata not available | Handle missing metadata gracefully |


## Important Notes

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1180

Use sentence case for headings: 'Important Notes'.

<Info>

Expand All @@ -1189,13 +1189,13 @@

</Info>

### Gas Optimization

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1192

Use sentence case for headings: 'Gas Optimization'.

- **Batch Operations:** Use batch functions for multiple operations to save gas
- **Query Efficiency:** Cache frequently accessed token metadata
- **Error Handling:** Implement proper error handling to avoid failed transaction costs

### Integration Best Practices

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

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1198

Use sentence case for headings: 'Integration Best Practices'.

- **Balance Checks:** Always verify sufficient balance before transfers
- **Error Recovery:** Implement retry logic for failed transactions
Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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,7 +41,7 @@

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>

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 @@ -95,9 +95,9 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **EVM-compatible wallet**
- **SEI tokens** for gas fees and contract operations
- **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
6 changes: 3 additions & 3 deletions evm/precompiles/governance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,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 Governance Precompile Work?

Check warning on line 13 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L13

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

The governance precompile at address `0x0000000000000000000000000000000000001006` exposes functions like `vote()`, `voteWeighted()`, `deposit()`, and `submitProposal()`.

Expand All @@ -18,17 +18,17 @@
- **Native Execution:** Governance operations are executed at the chain level for maximum efficiency.
- **Seamless:** No need for separate wallet integrations.

## Use Cases

Check warning on line 21 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L21

Use sentence case for headings: 'Use Cases'.

- **Voting Interfaces:** Create user-friendly governance participation tools.
- **Automated Governance:** Smart contracts that vote based on predetermined strategies.
- **Governance Aggregators:** Build platforms that aggregate and simplify governance participation.

## Sei Governance Overview

Check warning on line 27 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L27

Use sentence case for headings: 'Sei Governance Overview'.

Sei governance operates on a structured timeline with specific parameters:

### Governance Process

Check warning on line 31 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L31

Use sentence case for headings: 'Governance Process'.

1. **Proposal Submission:** Submit proposal with minimum 3,500 SEI deposit
2. **Deposit Period:** 2 days to accumulate minimum deposit or reach expedited threshold
Expand All @@ -53,7 +53,7 @@

The governance precompile exposes the following functions:

### Transaction Functions

Check warning on line 56 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L56

Use sentence case for headings: 'Transaction Functions'.

```solidity
/// Cast a vote on the specified proposal.
Expand Down Expand Up @@ -101,7 +101,7 @@
) payable external returns (uint64 proposalID);
```

## Using the Contract

Check warning on line 104 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L104

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

### Setup

Expand All @@ -112,9 +112,9 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **MetaMask** or compatible EVM wallet configured for Sei Mainnet
- **SEI tokens** for gas fees and governance deposits (minimum 3,500 SEI for proposals)
- **SEI tokens** for gas and governance deposits (minimum 3,500 SEI for proposals)

#### Install Dependencies

Check warning on line 117 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L117

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -129,7 +129,7 @@
npm install dotenv
```

#### Import Precompile Components

Check warning on line 132 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L132

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

```typescript
// Import Governance precompile address and ABI
Expand All @@ -140,7 +140,7 @@

<Info>**Precompile Address:** The governance precompile is deployed at `0x0000000000000000000000000000000000001006`</Info>

#### Get SEI Tokens

Check warning on line 143 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L143

Use sentence case for headings: 'Get SEI Tokens'.

Purchase SEI tokens from supported exchanges:

Expand All @@ -148,7 +148,7 @@
- **Decentralized Exchanges:** Astroport, Dragonswap (on Sei)
- **Bridge Options:** Various cross-chain bridges support SEI

<Warning>**Minimum Requirements:** You need at least 3,500 SEI to submit a governance proposal, plus additional tokens for gas fees and potential additional deposits.</Warning>
<Warning>**Minimum Requirements:** You need at least 3,500 SEI to submit a governance proposal, plus additional tokens for gas and potential additional deposits.</Warning>

### Contract Initialization

Expand All @@ -168,7 +168,7 @@
const governance = new ethers.Contract(GOVERNANCE_PRECOMPILE_ADDRESS, GOVERNANCE_PRECOMPILE_ABI, signer);
```

## Vote Options

Check warning on line 171 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L171

Use sentence case for headings: 'Vote Options'.

The governance system uses the following vote options:

Expand All @@ -180,7 +180,7 @@
| NoWithVeto | 4 | Vote against with veto | Opposes Proposal & burns deposit if > 33.4% |


### Voting Power

Check warning on line 183 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L183

Use sentence case for headings: 'Voting Power'.

Your voting power is determined by:

Expand All @@ -190,7 +190,7 @@

<Info>**Important:** Only staked SEI provides voting power. You must delegate your tokens to validators to participate in governance voting.</Info>

## Validation Functions

Check warning on line 193 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L193

Use sentence case for headings: 'Validation Functions'.

Before making governance transactions, use these helper functions to validate inputs:

Expand Down Expand Up @@ -246,9 +246,9 @@
}
```

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

Check warning on line 249 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L249

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

### Submit a Proposal

Check warning on line 251 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L251

Use sentence case for headings: 'Submit a Proposal'.

<Info>
**Important Deposit Requirements:**
Expand Down Expand Up @@ -383,7 +383,7 @@
await submitGovernanceProposal(proposalTitle, proposalDescription, depositAmount, false);
```

### Vote on a Proposal

Check warning on line 386 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L386

Use sentence case for headings: 'Vote on a Proposal'.

```typescript
// Simple voting with comprehensive validation
Expand Down Expand Up @@ -448,7 +448,7 @@
await voteOnProposal(proposalID, 4);
```

### Weighted Voting

Check warning on line 451 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L451

Use sentence case for headings: 'Weighted Voting'.

<Danger>**Critical Requirement:** Weighted vote options MUST sum to exactly 1.0 or the transaction will fail. The Sei governance module enforces this strictly - even small rounding errors will cause rejection.</Danger>

Expand Down Expand Up @@ -562,7 +562,7 @@
// await castWeightedVote(proposalID, badVote); // Don't run this!
```

### Deposit to a Proposal

Check warning on line 565 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L565

Use sentence case for headings: 'Deposit to a Proposal'.

```typescript
// Add deposit to help proposal reach minimum threshold
Expand Down Expand Up @@ -617,7 +617,7 @@
await addDepositToProposal(proposalID, additionalDeposit);
```

## Complete Integration Example

Check warning on line 620 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L620

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

Create a comprehensive governance interaction script:

Expand Down Expand Up @@ -872,7 +872,7 @@
main().catch(console.error);
```

### Running the Example

Check warning on line 875 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L875

Use sentence case for headings: 'Running the Example'.

1. **Create a new directory and initialize npm:**

Expand Down Expand Up @@ -900,7 +900,7 @@
5. **Ensure you have sufficient SEI:**

- Minimum 3,500 SEI for proposal deposit
- Additional SEI for gas fees and optional additional deposits
- Additional SEI for gas and optional additional deposits
- Staked SEI for voting power

6. **Run the script:**
Expand All @@ -909,7 +909,7 @@
node governance-mainnet-demo.js
```

### Expected Output

Check warning on line 912 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L912

Use sentence case for headings: 'Expected Output'.

```
🌐 Connecting to Sei Mainnet...
Expand Down Expand Up @@ -960,9 +960,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 963 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L963

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

#### Insufficient Deposit

Check warning on line 965 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L965

Use sentence case for headings: 'Insufficient Deposit'.

```typescript
// Check minimum deposit requirement based on proposal type
Expand All @@ -981,7 +981,7 @@
}
```

#### No Voting Power

Check warning on line 984 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L984

Use sentence case for headings: 'No Voting Power'.

```typescript
// Check if user has staked SEI for voting power
Expand All @@ -998,7 +998,7 @@
}
```

#### Invalid Vote Option

Check warning on line 1001 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L1001

Use sentence case for headings: 'Invalid Vote Option'.

```typescript
// Validate vote option with descriptive error
Expand All @@ -1020,7 +1020,7 @@
}
```

#### Weighted Vote Validation

Check warning on line 1023 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L1023

Use sentence case for headings: 'Weighted Vote Validation'.

```typescript
// Comprehensive weighted vote validation with helpful errors
Expand Down Expand Up @@ -1082,7 +1082,7 @@
}
```

### Error Code Reference

Check warning on line 1085 in evm/precompiles/governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/governance.mdx#L1085

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

| Error | Cause | Solution |
| --- | --- | --- |
Expand Down
4 changes: 2 additions & 2 deletions evm/precompiles/json.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,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 JSON Precompile Work?

Check warning on line 13 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L13

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

The JSON precompile at address `0x0000000000000000000000000000000000001003` exposes functions like `extractAsBytes()`, `extractAsBytesList()`, and `extractAsUint256()`.

Expand All @@ -18,7 +18,7 @@
- **Native Execution:** JSON parsing is executed at the native level for maximum efficiency.
- **Seamless Bridge:** No need for complex workarounds or external libraries for JSON handling.

## Use Cases

Check warning on line 21 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L21

Use sentence case for headings: 'Use Cases'.

- **Oracle Integration:** Parse complex oracle responses containing multiple data points.
- **DeFi Applications:** Process structured price feeds and market data.
Expand All @@ -30,7 +30,7 @@

The JSON precompile exposes the following functions:

### Query Functions

Check warning on line 33 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L33

Use sentence case for headings: 'Query Functions'.

```solidity
/// Extracts data as bytes from the input using the specified key.
Expand Down Expand Up @@ -61,7 +61,7 @@
) external view returns (uint256 response);
```

## Using the Precompile

Check warning on line 64 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L64

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

### Setup

Expand All @@ -72,9 +72,9 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **MetaMask** or compatible EVM wallet configured for Sei Mainnet
- **SEI tokens** for gas fees
- **SEI tokens** for gas

#### Install Dependencies

Check warning on line 77 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L77

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -89,7 +89,7 @@
npm install dotenv
```

#### Import Precompile Components

Check warning on line 92 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L92

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

```typescript
// Import JSON precompile address and ABI
Expand Down Expand Up @@ -118,11 +118,11 @@
const jsonPrecompile = new ethers.Contract(JSON_PRECOMPILE_ADDRESS, JSON_PRECOMPILE_ABI, signer);
```

## Data Type Handling

Check warning on line 121 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L121

Use sentence case for headings: 'Data Type Handling'.

The JSON precompile has specific limitations for different data types:

### Supported Data Types

Check warning on line 125 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L125

Use sentence case for headings: 'Supported Data Types'.

| Function | Supports | Limitations |
| --- | --- | --- |
Expand All @@ -131,7 +131,7 @@
| extractAsBytesList | Arrays of strings/objects | Each element returned as bytes |


### Data Type Conversion Strategies

Check warning on line 134 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L134

Use sentence case for headings: 'Data Type Conversion Strategies'.

```typescript
// For decimal numbers - store as integers with known precision
Expand All @@ -151,7 +151,7 @@
const userObject = JSON.parse(userString);
```

## Error Handling Utilities

Check warning on line 154 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L154

Use sentence case for headings: 'Error Handling Utilities'.

Create comprehensive error handling for all extraction functions:

Expand Down Expand Up @@ -193,9 +193,9 @@
}
```

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

Check warning on line 196 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L196

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

### Extract String Data

Check warning on line 198 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L198

Use sentence case for headings: 'Extract String Data'.

```typescript
// JSON data with string values
Expand All @@ -216,7 +216,7 @@
}
```

### Extract Numeric Data

Check warning on line 219 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L219

Use sentence case for headings: 'Extract Numeric Data'.

```typescript
// JSON data with numbers (integers only)
Expand All @@ -234,7 +234,7 @@
console.log('Rate:', actualRate);
```

### Extract Array Data

Check warning on line 237 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L237

Use sentence case for headings: 'Extract Array Data'.

```typescript
// JSON data with array
Expand All @@ -253,7 +253,7 @@
console.log('Mixed values:', valuesArray); // Output: [42, "test", 100]
```

### Extract Nested Data

Check warning on line 256 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L256

Use sentence case for headings: 'Extract Nested Data'.

<Warning>**Important:** The JSON precompile does not support dot notation for nested objects. Instead, extract the parent object and parse it manually.</Warning>

Expand Down Expand Up @@ -286,7 +286,7 @@
console.log('Wallet data:', walletData); // Output: { balance: 1000, currency: "SEI" }
```

## Complete Integration Example

Check warning on line 289 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L289

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

Create a comprehensive JSON parsing application for mainnet:

Expand Down Expand Up @@ -489,7 +489,7 @@
main().catch(console.error);
```

### Running the Mainnet Example

Check warning on line 492 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L492

Use sentence case for headings: 'Running the Mainnet Example'.

1. **Create a new directory and initialize npm:**

Expand Down Expand Up @@ -518,7 +518,7 @@

5. **Ensure you have SEI tokens:**

- SEI for gas fees (small amounts needed for view functions)
- SEI for gas (small amounts needed for view functions)

6. **Run the script:**

Expand All @@ -526,7 +526,7 @@
node json-precompile-mainnet.js
```

### Expected Output

Check warning on line 529 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L529

Use sentence case for headings: 'Expected Output'.

```
🌐 Connecting to Sei Mainnet...
Expand Down Expand Up @@ -602,9 +602,9 @@
🎉 === JSON Precompile Demo Completed Successfully! ===
```

## Advanced Usage Examples

Check warning on line 605 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L605

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

### Oracle Price Feed Integration

Check warning on line 607 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L607

Use sentence case for headings: 'Oracle Price Feed Integration'.

```typescript
// Advanced oracle integration with comprehensive error handling
Expand Down Expand Up @@ -656,9 +656,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 659 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L659

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

#### Key Not Found

Check warning on line 661 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L661

Use sentence case for headings: 'Key Not Found'.

```typescript
// Comprehensive error handling for missing keys
Expand All @@ -680,7 +680,7 @@
}
```

### Error Code Reference

Check warning on line 683 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L683

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

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -691,7 +691,7 @@
| `out of gas` | Insufficient gas for large JSON | Use `calculateGasLimit()` for dynamic estimation |


## Key Considerations and Tricks

Check warning on line 694 in evm/precompiles/json.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/json.mdx#L694

Use sentence case for headings: 'Key Considerations and Tricks'.

<Info>

Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/staking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,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 Staking Precompile Work?

Check warning on line 15 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L15

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

The staking precompile at address `0x0000000000000000000000000000000000001005` exposes a comprehensive set of staking functions including `delegate()`, `undelegate()`, `redelegate()`, `createValidator()`, `editValidator()`, and various query functions like `validators()`, `delegatorDelegations()`, `pool()`, and `params()`.

Expand All @@ -21,14 +21,14 @@
- **Seamless Bridge:** No need for separate wallet integrations or complex cross-chain interactions.
- **Event Emission:** All staking operations emit events (`Delegate`, `Undelegate`, `Redelegate`, `ValidatorCreated`, `ValidatorEdited`) for easy tracking and indexing.

## Use Cases

Check warning on line 24 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L24

Use sentence case for headings: 'Use Cases'.

- **DeFi Integration:** Build liquid staking protocols and yield farming strategies.
- **Delegation Services:** Create user-friendly interfaces for staking operations.
- **Portfolio Management:** Automate staking strategies and delegation rebalancing.
- **Validator Management:** Create and manage validators programmatically.

## What You'll Learn in This Guide

Check warning on line 31 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.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 Down Expand Up @@ -104,7 +104,7 @@
);
```

### Listening for Events

Check warning on line 107 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L107

Use sentence case for headings: 'Listening for Events'.

You can listen for these events in your dApp to track staking operations:

Expand Down Expand Up @@ -139,7 +139,7 @@

The staking precompile exposes the following functions:

### Transaction Functions

Check warning on line 142 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L142

Use sentence case for headings: 'Transaction Functions'.

```solidity
/// Delegates Sei to the specified validator.
Expand Down Expand Up @@ -205,7 +205,7 @@
) external returns (bool success);
```

### Query Functions

Check warning on line 208 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L208

Use sentence case for headings: 'Query Functions'.

```solidity
struct Delegation {
Expand Down Expand Up @@ -446,7 +446,7 @@

</Warning>

## Using the Precompile

Check warning on line 449 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L449

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

### Setup

Expand All @@ -457,9 +457,9 @@
- **Node.js** (v18 or higher)
- **npm** or **yarn** package manager
- **EVM-compatible wallet**
- **SEI tokens** for gas fees and staking operations
- **SEI tokens** for gas and staking operations

#### Install Dependencies

Check warning on line 462 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L462

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

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

#### Import Precompile Components

Check warning on line 474 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L474

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

```typescript
// Import Staking precompile address and ABI
Expand All @@ -496,11 +496,11 @@
const staking = new ethers.Contract(STAKING_PRECOMPILE_ADDRESS, STAKING_PRECOMPILE_ABI, signer);
```

## Critical: Understanding Decimal Precision

Check warning on line 499 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L499

Use sentence case for headings: 'Critical: Understanding Decimal Precision'.

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

### Mixed Decimal Precision System

Check warning on line 503 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L503

Use sentence case for headings: 'Mixed Decimal Precision System'.

The staking precompile operates with **different decimal precision for different operations** due to bridging EVM and Cosmos standards:

Expand Down Expand Up @@ -530,7 +530,7 @@

</Warning>

### How This Works in Practice

Check warning on line 533 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L533

Use sentence case for headings: 'How This Works in Practice'.

**delegate() Function (Uses 18 decimals):**

Expand All @@ -546,13 +546,13 @@
- `delegation()` - returns `balance.amount` in 6-decimal `uSEI` and `delegation.shares` in 18-decimal precision
- Rewards are handled by the **Distribution precompile**: `rewards()` query returns 18-decimal `DecCoins`, while withdrawn amounts (events) are 6-decimal `uSEI`

### Why This Mixed System Exists

Check warning on line 549 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L549

Use sentence case for headings: 'Why This Mixed System Exists'.

1. **delegate() EVM Compatibility:** Uses standard 18-decimal wei format for EVM `msg.value` consistency
2. **Other Operations Cosmos Integration:** `undelegate()` and `redelegate()` use 6-decimal uSEI precision to match native Cosmos operations
3. **Staking Query Consistency:** Staking precompile query balances use 6-decimal `uSEI` (while `shares` is 18-decimal) for consistent reading

### Best Practice: Different Conversion for Different Functions

Check warning on line 555 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L555

Use sentence case for headings: 'Best Practice: Different Conversion for Different Functions'.

When working with user inputs, use the appropriate conversion for each function:

Expand All @@ -579,7 +579,7 @@
const undelegateAmount = prepareAmountForUndelegateRedelegate(userInputAmount); // 6 decimals
```

### Normalization Guidelines (Clients and Indexers)

Check warning on line 582 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L582

Use sentence case for headings: 'Normalization Guidelines (Clients and Indexers)'.

- **Normalize to a single unit** for analytics and reconciliation:
- Display: convert to `SEI` (`wei / 1e18`, `uSEI / 1e6`)
Expand All @@ -604,7 +604,7 @@
}
```

## Decimal Conversion Helpers

Check warning on line 607 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L607

Use sentence case for headings: 'Decimal Conversion Helpers'.

Use these helper functions to avoid precision errors:

Expand Down Expand Up @@ -638,9 +638,9 @@
const redelegateAmount = SeiAmountConverter.seiToUsei(2); // For redelegate() - 6 decimals
```

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

Check warning on line 641 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L641

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

### Delegate Tokens

Check warning on line 643 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L643

Use sentence case for headings: 'Delegate Tokens'.

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

</Tabs>

### Create a Validator

Check warning on line 820 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L820

Use sentence case for headings: 'Create a Validator'.

<Warning> Creating a validator requires significant SEI for self-delegation and proper validator infrastructure setup. Only proceed if you understand the responsibilities of running a validator node. </Warning>

Expand Down Expand Up @@ -876,7 +876,7 @@
</Tab>
</Tabs>

### Edit a Validator

Check warning on line 879 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L879

Use sentence case for headings: 'Edit a Validator'.

```typescript
// Update validator parameters
Expand All @@ -892,7 +892,7 @@

<Info>**Edit Validator Constraints:** - Commission can only be changed once every 24 hours - `minSelfDelegation` can only be increased, never decreased - Pass empty string `""` for `commissionRate` to keep current rate - Pass `0` for `minSelfDelegation` to keep current value</Info>

### Query Validators

Check warning on line 895 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L895

Use sentence case for headings: 'Query Validators'.

```typescript
// Get all bonded validators
Expand All @@ -910,7 +910,7 @@
}
```

### Query a Specific Validator

Check warning on line 913 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L913

Use sentence case for headings: 'Query a Specific Validator'.

```typescript
const validatorAddress = 'seivaloper1xyz...';
Expand All @@ -925,7 +925,7 @@
});
```

### Query All Delegations for an Address

Check warning on line 928 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L928

Use sentence case for headings: 'Query All Delegations for an Address'.

```typescript
const delegator = await signer.getAddress();
Expand All @@ -940,7 +940,7 @@
}
```

### Query Unbonding Delegations

Check warning on line 943 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L943

Use sentence case for headings: 'Query Unbonding Delegations'.

```typescript
const delegator = await signer.getAddress();
Expand All @@ -962,7 +962,7 @@
const specificUnbonding = await staking.unbondingDelegation(delegator, validatorAddress);
```

### Query Redelegations

Check warning on line 965 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L965

Use sentence case for headings: 'Query Redelegations'.

```typescript
// Get all redelegations for a specific delegator
Expand All @@ -986,7 +986,7 @@
}
```

### Query Staking Pool and Parameters

Check warning on line 989 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L989

Use sentence case for headings: 'Query Staking Pool and Parameters'.

```typescript
// Get staking pool totals
Expand All @@ -1006,7 +1006,7 @@
});
```

### Query Historical Validator Info

Check warning on line 1009 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1009

Use sentence case for headings: 'Query Historical Validator Info'.

```typescript
// Get validator set at a specific block height
Expand All @@ -1019,9 +1019,9 @@
}
```

## Advanced Usage Examples

Check warning on line 1022 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1022

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

### Portfolio Rebalancing

Check warning on line 1024 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1024

Use sentence case for headings: 'Portfolio Rebalancing'.

```typescript
async function rebalanceStaking(
Expand All @@ -1046,7 +1046,7 @@
}
```

### Complete Integration Example

Check warning on line 1049 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1049

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

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

## Security Considerations & Risks

Check warning on line 1359 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1359

Use sentence case for headings: 'Security Considerations & Risks'.

### Unbonding Period

Check warning on line 1361 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1361

Use sentence case for headings: 'Unbonding Period'.

- **21-day lock:** Undelegated tokens cannot be transferred or earn rewards for 21 days
- **No exceptions:** This cannot be canceled once initiated
- **Planning:** Consider this when managing liquidity needs

### Validator Selection Criteria

Check warning on line 1367 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1367

Use sentence case for headings: 'Validator Selection Criteria'.

- **Commission Rate:** Lower commission means more rewards for you (typically 1-10%)
- **Uptime:** Check for validators with high uptime (99%+)

### Redelegation Complexity

Check warning on line 1372 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1372

Use sentence case for headings: 'Redelegation Complexity'.

- **7-transaction limit:** You can only redelegate from the same validator to the same destination validator 7 times in 21 days
- **Serial blocking:** After redelegating A→B, you cannot redelegate B→C for 21 days
Expand All @@ -1377,9 +1377,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 1380 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1380

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

#### Gas-Related Issues

Check warning on line 1382 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1382

Use sentence case for headings: 'Gas-Related Issues'.

```typescript
// Set appropriate gas limits for different operations
Expand All @@ -1389,7 +1389,7 @@
});
```

### Error Code Reference

Check warning on line 1392 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1392

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

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -1402,7 +1402,7 @@
| `too many redelegations` | Exceeded 7 redelegation limit | Wait for earliest redelegation to expire |


## FAQ: Precision and Normalization

Check warning on line 1405 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1405

Use sentence case for headings: 'FAQ: Precision and Normalization'.

- **What are the base units and precision standards defined for SEI across operations?**
- `delegate()`: accepts `msg.value` in wei (18 decimals), but is internally truncated to 6-decimal `uSEI`. Effective granularity is 1 uSEI = `1e12` wei.
Expand All @@ -1415,11 +1415,11 @@
- **Why multiple decimal precisions on one chain?**
- To bridge EVM conventions (18-decimal `msg.value`) with the Cosmos staking module’s native 6-decimal accounting while keeping queries and non-`delegate()` writes consistent at 6 decimals.

## Important Notes

Check warning on line 1418 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1418

Use sentence case for headings: 'Important Notes'.

<Info> Remember the key rule: delegate() uses 18 decimals, undelegate()/redelegate() use 6 decimals, delegation() returns 6 decimals! </Info>

### Decimal Precision

Check warning on line 1422 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1422

Use sentence case for headings: 'Decimal Precision'.

- **delegate()** uses 18 decimals (wei) for msg.value
- **undelegate() and redelegate()** use 6 decimals (uSEI) for amount parameters
Expand All @@ -1428,17 +1428,17 @@
- **Rewards/claims (Distribution precompile):** `rewards()` query returns 18-decimal `DecCoins`; withdrawn amounts (events) are 6-decimal `uSEI`
- **Granularity:** `delegate()` `msg.value` must be a multiple of `1e12` wei (last 12 digits zero) because the precompile truncates to 6 decimals internally

### Validator Addresses

Check warning on line 1431 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1431

Use sentence case for headings: 'Validator Addresses'.

- Use valid Sei validator addresses with `seivaloper1...` prefix
- These are Cosmos-format addresses, not EVM addresses

### Staking Risks

Check warning on line 1436 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1436

Use sentence case for headings: 'Staking Risks'.

- **Unbonding:** 21-day waiting period for undelegated tokens
- **Redelegation limits:** Complex rules around frequency and serial operations

### Commission and Rewards

Check warning on line 1441 in evm/precompiles/staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/staking.mdx#L1441

Use sentence case for headings: 'Commission and Rewards'.

- Validators keep a commission percentage
- Rewards are distributed proportionally to delegation amounts
Expand Down
4 changes: 2 additions & 2 deletions evm/sei-global-wallet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@

Sei Global Wallet is a cross-application embedded crypto wallet powered by [Dynamic Global Wallets](https://www.dynamic.xyz/docs/react/global-wallets/overview). It gives users a persistent wallet experience across any integrated app within the Sei ecosystem, allowing them to authenticate and interact using familiar login methods like Google, Twitter, or Telegram—no browser extension or prior crypto knowledge required.

<Info>Additional auth methods such as existing wallet apps (Metamask, ..) are possible through Dynamic, but are not currently enabled</Info>
<Info>Additional auth methods such as existing wallet apps (MetaMask, ..) are possible through Dynamic, but are not currently enabled</Info>

## What is Sei Global Wallet?

Check warning on line 13 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L13

Use sentence case for headings: 'What is Sei Global Wallet?'.

Unlike traditional browser extension wallets, Sei Global Wallet is built directly into web applications and allows users to authenticate using familiar methods like Google, Twitter, Telegram, or email—no downloads or crypto knowledge required.

## Why Use Sei Global Wallet?

Check warning on line 17 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L17

Use sentence case for headings: 'Why Use Sei Global Wallet?'.

**For Users:**

Expand All @@ -29,7 +29,7 @@
- **Zero Configuration:** Pre-configured and ready to use
- **Universal Compatibility:** Works with RainbowKit, ConnectKit, Web3-React, and more

## How to Create a Sei Global Wallet Account

Check warning on line 32 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L32

Use sentence case for headings: 'How to Create a Sei Global Wallet Account'.

1. Visit [dashboard.sei.io](https://dashboard.sei.io) or any Sei ecosystem application
2. Click "Connect Wallet" and select "Sei Global Wallet"
Expand All @@ -37,7 +37,7 @@
4. Complete the authentication flow
5. Your wallet is automatically created and ready to use across all integrated Sei apps

## How to Integrate Sei Global Wallet

Check warning on line 40 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L40

Use sentence case for headings: 'How to Integrate Sei Global Wallet'.

### Prerequisites

Expand Down Expand Up @@ -65,11 +65,11 @@
import '@sei-js/sei-global-wallet/eip6963';
```

<Warning>**Important:** Simply importing the package registers the wallet for discovery, but you'll need to ensure your application's provider stack is properly configured to interact with it. Most wallet connection libraries that support EIP-6963 will automatically detect the wallet after import.</Warning>
<Warning>**Important:** Importing the package registers the wallet for discovery, but you'll need to ensure your application's provider stack is properly configured to interact with it. Most wallet connection libraries that support EIP-6963 will automatically detect the wallet after import.</Warning>

---

## Integration Examples

Check warning on line 72 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L72

Use sentence case for headings: 'Integration Examples'.

Below are integration examples for different frameworks and wallet provider libraries to properly integrate the pre-configured Sei Global Wallet package.

Expand Down Expand Up @@ -1004,7 +1004,7 @@

</Accordion>

## Troubleshooting & FAQ

Check warning on line 1007 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1007

Use sentence case for headings: 'Troubleshooting & FAQ'.

<Tabs>

Expand Down Expand Up @@ -1046,7 +1046,7 @@
chainId: '0x530'; // for Sei Testnet (1328)
```

### Debugging Commands

Check warning on line 1049 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1049

Use sentence case for headings: 'Debugging Commands'.

```javascript
// Check if EIP-6963 events are firing
Expand All @@ -1061,7 +1061,7 @@
window.dispatchEvent(new Event('eip6963:requestProvider'));
```

### Testing Tips

Check warning on line 1064 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1064

Use sentence case for headings: 'Testing Tips'.

1. **Test with multiple browsers** to ensure cross-browser compatibility
2. **Clear browser cache** if wallets aren't appearing
Expand All @@ -1069,7 +1069,7 @@
4. **Test both testnet and mainnet** connections
5. **Verify social login methods** work across different auth providers

### Security Considerations

Check warning on line 1072 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1072

Use sentence case for headings: 'Security Considerations'.

- Sei Global Wallet is **self-custodial** - users control their private keys
- All communications between app and wallet are **encrypted**
Expand All @@ -1085,7 +1085,7 @@

Sei Global Wallet is an embedded wallet experience for the Sei network, enabling wallet creation and authentication through social logins. Unlike traditional embedded wallets, Sei Global Wallet offer greater flexibility by allowing users to carry their wallets across different apps within the Sei ecosystem.

#### Q: What are the key benefits of Sei Global Wallet for developers and users?

Check warning on line 1088 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1088

Use sentence case for headings: 'Q: What are the key benefits of Sei Global Wallet for developers and users?'.

**For Developers:**

Expand All @@ -1112,19 +1112,19 @@
- **Trusted Execution Environments (TEEs):** Operations occur within secure environments
- **Verified origins:** Only verified origins can interact with Sei Global Wallet

#### Q: Is Sei Global Wallet self-custodial or custodial?

Check warning on line 1115 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1115

Use sentence case for headings: 'Q: Is Sei Global Wallet self-custodial or custodial?'.

Sei Global Wallet is self-custodial, giving full control to end-users. Users can export their keys at any time and import them into other wallets, such as MetaMask.

#### Q: Do Sei Global Wallet require browser extensions?

Check warning on line 1119 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1119

Use sentence case for headings: 'Q: Do Sei Global Wallet require browser extensions?'.

No, they operate as embedded wallets that work directly in the browser without requiring extensions.

#### Q: Can I link my existing external wallet to my Sei Global Wallet?

Check warning on line 1123 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1123

Use sentence case for headings: 'Q: Can I link my existing external wallet to my Sei Global Wallet?'.

Not currently. In the future, you will be able to link external wallets to a Sei global account.

#### Q: What extra protections can I add to my Sei Global Wallet?

Check warning on line 1127 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1127

Use sentence case for headings: 'Q: What extra protections can I add to my Sei Global Wallet?'.

While Global Wallets are non-custodial, good security practices include:

Expand All @@ -1133,7 +1133,7 @@
- **Always have backup methods** - link additional email or social login methods
- **Never store authentication keys digitally** - keep private keys secure offline

#### Q: Have Sei Global Wallet been audited?

Check warning on line 1136 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1136

Use sentence case for headings: 'Q: Have Sei Global Wallet been audited?'.

Yes, the Dynamic Global Wallets product has been audited by Cure53.

Expand All @@ -1149,7 +1149,7 @@
</Tab>
</Tabs>

## References and Links

Check warning on line 1152 in evm/sei-global-wallet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-global-wallet.mdx#L1152

Use sentence case for headings: 'References and Links'.

- [Dynamic Global Wallet Documentation](https://www.dynamic.xyz/docs/react/global-wallets/overview)
- [EIP-6963 Standard](https://eips.ethereum.org/EIPS/eip-6963)
Expand Down
2 changes: 1 addition & 1 deletion evm/sei-js/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

- **Complete TypeScript support** — Full type safety for every function, contract interaction, and API response. Catch errors at compile time.
- **Production ready** — Battle-tested components used by major applications in the Sei ecosystem.
- **Optimized for Sei** — Take advantage of Sei's fast finality, low gas fees, and native features.
- **Optimized for Sei** — Take advantage of Sei's fast finality, low gas, and native features.

## Package Ecosystem

Check warning on line 19 in evm/sei-js/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-js/index.mdx#L19

Use sentence case for headings: 'Package Ecosystem'.

### [@sei-js/precompiles](/evm/precompiles)

Expand All @@ -34,7 +34,7 @@
npx @sei-js/create-sei app
```

### [@sei-js/sei-global-wallet](/evm/sei-global-wallet)

Check warning on line 37 in evm/sei-js/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-js/index.mdx#L37

Use sentence case for headings: '@sei-js/sei-global-wallet'.

Connect to any Sei-compatible wallet using the EIP-6963 standard. Provides a cross-application embedded wallet experience with social login.

Expand All @@ -42,7 +42,7 @@
npm install @sei-js/sei-global-wallet
```

### [@sei-js/ledger](/evm/sei-js/ledger)

Check warning on line 45 in evm/sei-js/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-js/index.mdx#L45

Use sentence case for headings: '@sei-js/ledger'.

Secure transaction signing with Ledger hardware wallets. Provides TypeScript helper functions for address derivation and offline Amino signing via the SEI Ledger app.

Expand All @@ -66,7 +66,7 @@
npx @sei-js/mcp-server
```

## Quick Start

Check warning on line 69 in evm/sei-js/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-js/index.mdx#L69

Use sentence case for headings: 'Quick Start'.

Generate a new Sei application using the CLI tool:

Expand Down Expand Up @@ -122,7 +122,7 @@
</Card>
</CardGroup>

## Community & Support

Check warning on line 125 in evm/sei-js/index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/sei-js/index.mdx#L125

Use sentence case for headings: 'Community & Support'.

- [Discord](https://discord.gg/sei) — Join the Sei developer community
- [GitHub Issues](https://github.com/sei-protocol/sei-js/issues) — Report bugs and request features
4 changes: 2 additions & 2 deletions evm/transactions-with-seid.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

If you don't already have keys configured, you'll need to either generate a new key or import an existing one into your local keyring. Refer to this guide on [how to create a key](/evm/installing-seid-cli) for more details.

## Network Configuration

Check warning on line 16 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L16

Use sentence case for headings: 'Network Configuration'.

If the machine you run these commands from are not a node of the network, you'd need to append the following to your commands:

Expand All @@ -25,7 +25,7 @@

<Info>Most commands support `--evm-rpc` flag to specify custom RPC endpoints. The default is `http://localhost:8545`.</Info>

## Common Transaction Flags

Check warning on line 28 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L28

Use sentence case for headings: 'Common Transaction Flags'.

All transaction commands support these common flags:

Expand All @@ -35,9 +35,9 @@
- `--evm-rpc=<url>` - EVM RPC endpoint URL (default: `http://localhost:8545`)
- `--nonce=<nonce>` - Nonce override for the transaction (-1 means auto-calculate)

## Address Management Commands

Check warning on line 38 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L38

Use sentence case for headings: 'Address Management Commands'.

### Associate Address

Check warning on line 40 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L40

Use sentence case for headings: 'Associate Address'.

Associates the Sei address and EVM address on-chain for the sending key. This is required for cross-layer interactions.

Expand All @@ -61,9 +61,9 @@
Response: {"jsonrpc":"2.0","result":null,"id":"associate_addr"}
```

## Token Transfer Commands

Check warning on line 64 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L64

Use sentence case for headings: 'Token Transfer Commands'.

### Send Native Tokens

Check warning on line 66 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L66

Use sentence case for headings: 'Send Native Tokens'.

Sends native tokens (usei) to the target EVM address.

Expand Down Expand Up @@ -93,7 +93,7 @@
Transaction hash: 0x...
```

### Send ERC20 Tokens

Check warning on line 96 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L96

Use sentence case for headings: 'Send ERC20 Tokens'.

Sends ERC20 tokens from a specific contract to a recipient.

Expand Down Expand Up @@ -124,9 +124,9 @@
Transaction hash: 0x...
```

## Contract Deployment Commands

Check warning on line 127 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L127

Use sentence case for headings: 'Contract Deployment Commands'.

### Deploy Contract

Check warning on line 129 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L129

Use sentence case for headings: 'Deploy Contract'.

Deploys an EVM contract from a binary file.

Expand Down Expand Up @@ -157,9 +157,9 @@
Transaction hash: 0x...
```

## Contract Interaction Commands

Check warning on line 160 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L160

Use sentence case for headings: 'Contract Interaction Commands'.

### Call Contract

Check warning on line 162 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L162

Use sentence case for headings: 'Call Contract'.

Calls an EVM contract with a specific payload. You can generate payload by taking a look at docs [here](/evm/querying-the-evm#payload-generation).

Expand Down Expand Up @@ -190,7 +190,7 @@
Transaction hash: 0x...
```

### Call Precompile

Check warning on line 193 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L193

Use sentence case for headings: 'Call Precompile'.

Calls a method on a precompiled contract. Precompiles provide EVM access to Cosmos-SDK functionality.

Expand Down Expand Up @@ -233,9 +233,9 @@
Transaction hash: 0x...
```

## Advanced Usage

Check warning on line 236 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L236

Use sentence case for headings: 'Advanced Usage'.

### Custom Gas Settings

Check warning on line 238 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L238

Use sentence case for headings: 'Custom Gas Settings'.

You can customize gas settings for any transaction:

Expand All @@ -246,7 +246,7 @@
--from=mykey
```

### Nonce Management

Check warning on line 249 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L249

Use sentence case for headings: 'Nonce Management'.

Override automatic nonce calculation:

Expand All @@ -256,19 +256,19 @@
--from=mykey
```

## Error Handling

Check warning on line 259 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L259

Use sentence case for headings: 'Error Handling'.

<Warning>
**Common Issues:**

- Insufficient balance for transaction + gas fees
- Insufficient balance for transaction + gas
- Incorrect address formats (use 0x prefix for EVM addresses)
- Gas limit too low for complex operations
- Nonce conflicts in rapid successive transactions

</Warning>

## Best Practices

Check warning on line 271 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L271

Use sentence case for headings: 'Best Practices'.

1. **Gas Estimation**: Start with default gas limits and adjust based on transaction complexity
2. **Address Validation**: Always verify addresses before sending transactions
Expand All @@ -276,10 +276,10 @@
4. **Network Verification**: Confirm you're connected to the correct network
5. **Transaction Monitoring**: Save transaction hashes for tracking purposes

## Transaction Requirements

Check warning on line 279 in evm/transactions-with-seid.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions-with-seid.mdx#L279

Use sentence case for headings: 'Transaction Requirements'.

- **Key Configuration**: Local keyring must contain the signing key
- **Sufficient Balance**: Account must have enough tokens for transaction amount + gas fees
- **Sufficient Balance**: Account must have enough tokens for transaction amount + gas
- **Address Formats**: Use proper formats (0x... for EVM, seivaloper... for validators)
- **Network Access**: Ensure connectivity to the specified RPC endpoint
- **Gas Limits**: Set appropriate gas limits for transaction complexity
Expand Down
2 changes: 1 addition & 1 deletion evm/transactions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Sei supports EVM transactions, allowing compatibility with Ethereum-based tools and contracts. Transactions are signed messages originating from an externally owned account (EOA) that trigger state changes on the blockchain.

## Transaction Lifecycle

Check warning on line 10 in evm/transactions.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions.mdx#L10

Use sentence case for headings: 'Transaction Lifecycle'.

| Stage | Description |
| ----------------- | -------------------------------------------------------------------------------------------------------------------- |
Expand All @@ -24,7 +24,7 @@
Unlike other EVM chains where you need to wait for multiple confirmations, Sei's consensus mechanism provides immediate transaction finality. Once a transaction is included in a block, it cannot be reversed.
</Info>

## Gas Mechanics

Check warning on line 27 in evm/transactions.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions.mdx#L27

Use sentence case for headings: 'Gas Mechanics'.

Gas is a unit of computational work in the EVM that helps prevent spam and allocate resources efficiently:

Expand All @@ -44,7 +44,7 @@
- Always estimate gas before sending transactions using `eth_estimateGas`
</Warning>

## Transaction Structure

Check warning on line 47 in evm/transactions.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions.mdx#L47

Use sentence case for headings: 'Transaction Structure'.

EVM transactions in Sei follow the Ethereum transaction format with standard properties:

Expand All @@ -58,7 +58,7 @@
| `nonce` | A sequentially incrementing counter that indicates the transaction number from the account. This prevents replay attacks and ensures transaction ordering. |
| `data` | The input data (also called 'input' or 'calldata') for contract execution. For simple transfers, this is usually empty. For contract interactions, this contains the function selector and encoded arguments. |
| `value` | Amount of SEI to transfer from sender to recipient (denominated in WEI, where 1 SEI equals 1e+18 WEI). |
| `gasLimit` | The maximum amount of gas units that can be consumed by the transaction. Often referred to simply as 'gas' in transaction objects. |
| `gasLimit` | The maximum amount of gas units that can be consumed by the transaction. Often referred to as 'gas' in transaction objects. |
| `maxPriorityFeePerGas` | The maximum price of the consumed gas to be included as a tip to the validator (denominated in WEI). Used in EIP-1559 transactions. |
| `maxFeePerGas` | The maximum fee per unit of gas willing to be paid for the transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas). Used in EIP-1559 transactions. |
| `gasPrice` | The price per unit of gas the sender is willing to pay (denominated in WEI). Used in legacy transactions. |
Expand Down Expand Up @@ -266,7 +266,7 @@
</Tab>
</Tabs>

## Transaction Guidelines

Check warning on line 269 in evm/transactions.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions.mdx#L269

Use sentence case for headings: 'Transaction Guidelines'.

<Info>
**Transaction Best Practices:**
Expand All @@ -285,7 +285,7 @@
| Out of Gas | Gas limit too low for the operation | Use `eth_estimateGas` to set appropriate limit |
| Contract Execution Failed | Contract function reverted | Test with `eth_call` before sending transaction |

## Additional Resources

Check warning on line 288 in evm/transactions.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/transactions.mdx#L288

Use sentence case for headings: 'Additional Resources'.

<CardGroup cols={3}>
<Card horizontal title="RPC Reference" icon="circle-info" href="/evm/reference">
Expand Down
2 changes: 1 addition & 1 deletion evm/wallet-integrations/pimlico.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
---
[Pimlico](https://pimlico.io) is an Account Abstraction infrastructure provider that enables developers to easily integrate smart accounts and gasless transactions into their Sei applications. This guide will walk you through creating a smart account and sending your first gasless transaction on Sei Testnet using Pimlico's infrastructure.

## Getting Started

Check warning on line 9 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L9

Use sentence case for headings: 'Getting Started'.

### Dependencies

Expand All @@ -18,7 +18,7 @@

<Info>permissionless.js is an AA SDK that works with any account, paymaster, or bundler implementation - no vendor lock-in.</Info>

### Setting up Pimlico Dashboard

Check warning on line 21 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L21

Use sentence case for headings: 'Setting up Pimlico Dashboard'.

Before starting the integration:

Expand All @@ -30,7 +30,7 @@
PIMLICO_API_KEY='pim_xxxxxxxxxxxxxxxxxxxxxx'
```

## Configuring Pimlico Client

Check warning on line 33 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L33

Use sentence case for headings: 'Configuring Pimlico Client'.

First, let's set up the necessary clients and configurations.

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

## Creating a Smart Account

Check warning on line 74 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L74

Use sentence case for headings: 'Creating a Smart Account'.

Now let's create a simple smart account instance. This account will be controlled by a single EOA signer:

Expand All @@ -88,7 +88,7 @@

<Info>For a full list of all supported smart account types in permissionless.js see [here](https://docs.pimlico.io/permissionless/how-to/accounts/comparison)</Info>

## Setting up the Smart Account Client

Check warning on line 91 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L91

Use sentence case for headings: 'Setting up the Smart Account Client'.

To interact with the smart account, we need to create a SmartAccountClient:

Expand All @@ -108,7 +108,7 @@
});
```

## Sending a Gasless Transaction

Check warning on line 111 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L111

Use sentence case for headings: 'Sending a Gasless Transaction'.

With everything set up, we can now send a gasless transaction from our smart account:

Expand All @@ -123,7 +123,7 @@
return txHash;
```

## Complete Example

Check warning on line 126 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L126

Use sentence case for headings: 'Complete Example'.

Here's a complete example that puts everything together:

Expand Down Expand Up @@ -199,7 +199,7 @@
main().catch(console.error);
```

## What's Happening Under the Hood?

Check warning on line 202 in evm/wallet-integrations/pimlico.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/pimlico.mdx#L202

Use sentence case for headings: 'What's Happening Under the Hood?'.

When you send a transaction using the smart account client:

Expand All @@ -219,7 +219,7 @@
- Create a smart account
- Send gasless transactions

This implementation enables a seamless user experience where end users don't need to worry about gas fees or managing native tokens to interact with your dApp.
This implementation enables a seamless user experience where end users don't need to worry about gas or managing native tokens to interact with your dApp.

For more information about Pimlico and its features, check out:

Expand Down
2 changes: 1 addition & 1 deletion evm/wallet-integrations/thirdweb.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

This guide provides a comprehensive, step-by-step tutorial for integrating thirdweb's Account Abstraction SDK on Sei. By the end of this guide, you will understand how to create seamless wallet connectivity with social logins and build decentralized applications with sponsored gas transactions.

## What This Guide Covers

Check warning on line 11 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L11

Use sentence case for headings: 'What This Guide Covers'.

- Core concepts and benefits for user experience
- Creating a React application with thirdweb SDK and Vite
Expand All @@ -26,11 +26,11 @@

<Warning>**For Mainnet**: An active thirdweb Pay As You Go subscription ($5/month minimum) is required for gas sponsorship on mainnet.</Warning>

## What is Account Abstraction?

Check warning on line 29 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L29

Use sentence case for headings: 'What is Account Abstraction?'.

Account Abstraction (AA) is a paradigm that transforms how users interact with blockchain applications. Instead of traditional externally-owned accounts (EOAs), users get smart contract wallets that enable advanced features.

### Core Concepts

Check warning on line 33 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L33

Use sentence case for headings: 'Core Concepts'.

- **Smart Wallets**: Contract-based accounts with programmable logic
- **Gas Sponsorship**: Dapps pay transaction fees on behalf of users
Expand All @@ -39,7 +39,7 @@

## Network Information

### SEI Mainnet Configuration

Check warning on line 42 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L42

Use sentence case for headings: 'SEI Mainnet Configuration'.

- **Network Name**: SEI EVM
- **Chain ID**: 1329
Expand All @@ -48,11 +48,11 @@
- **Currency**: SEI
- **thirdweb RPC**: `https://1329.rpc.thirdweb.com/{YOUR_CLIENT_ID}`

### Step 1: Deploy a Storage Contract

Check warning on line 51 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L51

Use sentence case for headings: 'Step 1: Deploy a Storage Contract'.

Before integrating the SDK, deploy a simple Storage contract on SEI. This contract will store and retrieve a number.

#### Storage Contract (Solidity)

Check warning on line 55 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L55

Use sentence case for headings: 'Storage Contract (Solidity)'.

```solidity title="Storage.sol"
// SPDX-License-Identifier: MIT
Expand All @@ -73,9 +73,9 @@

Deploy this contract using [Remix](https://remix.ethereum.org/) on Sei. Note down the contract address - you'll need it in the code.

### Step 2: Project Setup

Check warning on line 76 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L76

Use sentence case for headings: 'Step 2: Project Setup'.

#### Create a New Project

Check warning on line 78 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L78

Use sentence case for headings: 'Create a New Project'.

```bash
npm create vite@latest sei-thirdweb-app -- --template react-ts
Expand All @@ -83,13 +83,13 @@
npm install
```

#### Install Dependencies

Check warning on line 86 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L86

Use sentence case for headings: 'Install Dependencies'.

```bash
npm install thirdweb@^5
```

#### Configure Environment Variables

Check warning on line 92 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L92

Use sentence case for headings: 'Configure Environment Variables'.

Create a `.env` file in your project root:

Expand All @@ -99,7 +99,7 @@

Get your Client ID from [thirdweb Dashboard](https://thirdweb.com/dashboard) → Settings → API Keys.

#### Enable Gas Sponsorship

Check warning on line 102 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L102

Use sentence case for headings: 'Enable Gas Sponsorship'.

If you want to sponsor gas on mainnet:

Expand All @@ -107,7 +107,7 @@
2. Subscribe to the **Pay As You Go** plan ($5/month)
3. Without this, sponsored transactions will fail on mainnet

### Step 3: Configure thirdweb Client

Check warning on line 110 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L110

Use sentence case for headings: 'Step 3: Configure thirdweb Client'.

Create `src/client.ts`:

Expand All @@ -119,7 +119,7 @@
});
```

### Step 4: Smart Contract Integration

Check warning on line 122 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L122

Use sentence case for headings: 'Step 4: Smart Contract Integration'.

Replace `src/App.tsx`:

Expand Down Expand Up @@ -302,7 +302,7 @@
export default App;
```

#### Understanding Key Components

Check warning on line 305 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L305

Use sentence case for headings: 'Understanding Key Components'.

| Component | Description |
| --- | --- |
Expand All @@ -313,7 +313,7 @@
| `inAppWallet` | Smart wallet with social login capabilities |


### Step 5: Package Configuration

Check warning on line 316 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L316

Use sentence case for headings: 'Step 5: Package Configuration'.

Ensure your `package.json` includes:

Expand Down Expand Up @@ -342,20 +342,20 @@
}
```

### Step 6: Run the Application

Check warning on line 345 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L345

Use sentence case for headings: 'Step 6: Run the Application'.

#### Start Development Server

Check warning on line 347 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L347

Use sentence case for headings: 'Start Development Server'.

```bash
npm run dev
```

#### Test the Application

Check warning on line 353 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L353

Use sentence case for headings: 'Test the Application'.

1. Open your browser and navigate to `http://localhost:5173`
2. Click "Connect to Sei Network"
3. Choose your preferred login method (Google, email, etc.)
4. A smart wallet is automatically created for you (no gas fees!)
4. A smart wallet is automatically created for you (no gas!)
5. After connecting, you'll see three interaction buttons
6. Try storing number 37 or a custom number
7. Retrieve the stored value - all transactions are gasless!
Expand All @@ -363,11 +363,11 @@

<Info>Gas fees are automatically sponsored when using Account Abstraction, so users don't need SEI tokens to interact with the contract.</Info>

### Step 7: Done!

Check warning on line 366 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L366

Use sentence case for headings: 'Step 7: Done!'.

You've successfully integrated thirdweb's Account Abstraction SDK with Sei! Users can now connect with social logins and interact with your contracts without needing to hold SEI tokens for gas.

## What You've Accomplished

Check warning on line 370 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L370

Use sentence case for headings: 'What You've Accomplished'.

- Created a React application with thirdweb SDK v5
- Configured Account Abstraction for SEI network
Expand All @@ -378,7 +378,7 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 381 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L381

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

| Error | Problem | Solution |
| --- | --- | --- |
Expand All @@ -389,7 +389,7 @@
| `Gas estimation failed` | Contract method issue | Verify contract ABI and function signature |


### Network Connection Issues

Check warning on line 392 in evm/wallet-integrations/thirdweb.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/wallet-integrations/thirdweb.mdx#L392

Use sentence case for headings: 'Network Connection Issues'.

<Danger>

Expand Down
6 changes: 3 additions & 3 deletions learn/accounts.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

Check warning on line 1 in learn/accounts.mdx

View workflow job for this annotation

GitHub Actions / audit

Description is 189 chars (ideal 50-160)
title: 'Sei Network Accounts: Dual Address System Explained'
sidebarTitle: 'Account Linking'
description: "Understand how Sei's unified account system works with both EVM (0x) and Cosmos (sei1) addresses, including association methods, security considerations, and cross-environment interactions."
Expand Down Expand Up @@ -32,9 +32,9 @@

Both addresses for a single account are derived from the same **public key**, but the chain can only determine their association **after the public key is known by the chain** via association.

## Key Points

Check warning on line 35 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L35

Use sentence case for headings: 'Key Points'.

### Before Linking

Check warning on line 37 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L37

Use sentence case for headings: 'Before Linking'.

- The Bech32 (`sei...`) and EVM (`0x...`) addresses are treated as **separate
accounts**.
Expand All @@ -44,12 +44,12 @@
linking.
- Some types of transactions will **not be possible** (see table below).

### After Linking

Check warning on line 47 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L47

Use sentence case for headings: 'After Linking'.

- Balances are reflected consistently across both addresses.
- Applications can query either address format seamlessly.

## Wallet Association and Transfer Limitations

Check warning on line 52 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L52

Use sentence case for headings: 'Wallet Association and Transfer Limitations'.

Certain actions are **not possible** before wallets are associated:

Expand All @@ -58,7 +58,7 @@
- Transfers of **ERC-based tokens** (e.g., ERC20/721/1155) from an EVM wallet to
an **unassociated Cosmos address**.

## Methods of Association

Check warning on line 61 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L61

Use sentence case for headings: 'Methods of Association'.

| Method | Security Risk | User Action Required |
| --- | --- | --- |
Expand All @@ -74,7 +74,7 @@
Constants for the `addr` precompile can also be found in the repo
[Sei-Chain/precompiles](https://github.com/sei-protocol/sei-chain/tree/main/precompiles/addr):

## Method 1: Broadcast a Transaction

Check warning on line 77 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L77

Use sentence case for headings: 'Method 1: Broadcast a Transaction'.

- When an account **broadcasts a transaction** (e.g., sending tokens), its
public key is recorded on-chain.
Expand All @@ -83,7 +83,7 @@
- This ensures balances and transactions are accessible across both address
formats.

## Method 2: Direct Private Key Association

Check warning on line 86 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L86

Use sentence case for headings: 'Method 2: Direct Private Key Association'.

<Danger>**Security Risk**: **High** – Requires the private key to be directly available. Exposing the private key can compromise the wallet.</Danger>

Expand All @@ -93,7 +93,7 @@
import { createPublicClient, createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { seiTestnet } from 'viem/chains';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/evm';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/precompiles';

const PRIVATE_KEY = '<replace_with_private_key>';

Expand All @@ -116,7 +116,7 @@
console.log(response);
```

## Method 3: Associate via Signed Message

Check warning on line 119 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L119

Use sentence case for headings: 'Method 3: Associate via Signed Message'.

<Warning>**Security Risk**: **Medium** – Requires signing a specific message using the private key.</Warning>

Expand All @@ -127,7 +127,7 @@
import { createWalletClient, http, parseSignature, toHex } from 'viem';
import { privateKeyToAccount, generatePrivateKey } from 'viem/accounts';
import { seiTestnet } from 'viem/chains';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/evm';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/precompiles';

const client = createWalletClient({ chain: seiTestnet, transport: http() });

Expand Down Expand Up @@ -155,7 +155,7 @@
associate();
```

## Method 4: Associate via Public Key

Check warning on line 158 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L158

Use sentence case for headings: 'Method 4: Associate via Public Key'.

<Info>**Security Risk**: **Low** – Involves using the public key, which is less sensitive than the private key.</Info>

Expand All @@ -166,7 +166,7 @@
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount, generatePrivateKey } from 'viem/accounts';
import { seiTestnet } from 'viem/chains';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/evm';
import { ADDRESS_PRECOMPILE_ABI, ADDRESS_PRECOMPILE_ADDRESS } from '@sei-js/precompiles';

const client = createWalletClient({ chain: seiTestnet, transport: http() });

Expand All @@ -192,11 +192,11 @@
associateViaPubkey();
```

## Query Linked Addresses

Check warning on line 195 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L195

Use sentence case for headings: 'Query Linked Addresses'.

Resolve either side of an existing association by calling the `addr` precompile at `0x0000000000000000000000000000000000001004` over a standard `eth_call`. The precompile is universally available on every Sei RPC.

### Fetch Bech32 Address for an EVM Address

Check warning on line 199 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L199

Use sentence case for headings: 'Fetch Bech32 Address for an EVM Address'.

```bash
curl -X POST $SEIEVM -H "Content-Type: application/json" -d '{
Expand Down Expand Up @@ -238,7 +238,7 @@
});
```

### Fetch EVM Address for a Sei Address

Check warning on line 241 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L241

Use sentence case for headings: 'Fetch EVM Address for a Sei Address'.

```ts
const evmAddr = await client.readContract({
Expand All @@ -251,7 +251,7 @@

The precompile reverts if the address has never been associated; surface this as "not linked" rather than re-throwing.

## Deriving Addresses from the Public Key

Check warning on line 254 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L254

Use sentence case for headings: 'Deriving Addresses from the Public Key'.

Both address formats come from the same secp256k1 public key, but they use
**different hashing schemes**: the bech32 (`sei1…`) side follows the standard
Expand All @@ -259,7 +259,7 @@
the EVM (`0x…`) side follows the standard Ethereum derivation (`keccak256` of
the **uncompressed** pubkey without its `0x04` prefix byte).

### Sei Address Derivation

Check warning on line 262 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L262

Use sentence case for headings: 'Sei Address Derivation'.

The Cosmos address is derived from the public key using the following steps:

Expand All @@ -284,7 +284,7 @@
}
```

### EVM Address Derivation

Check warning on line 287 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L287

Use sentence case for headings: 'EVM Address Derivation'.

The EVM-compatible address is derived as follows:

Expand Down Expand Up @@ -313,7 +313,7 @@
- **EVM Address**: `'0x' + keccak256(uncompressedPubKey[1:])[-20:]` — last 20 bytes of the keccak256 hash, Ethereum-standard derivation.
- The two formats share an account because the chain stores the **public key** itself on association; either format can be derived from it deterministically.

### Why It Works

Check warning on line 316 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L316

Use sentence case for headings: 'Why It Works'.

Both formats are deterministic, public-key-derived address schemes. Once the
public key is on-chain (via any of the four association methods above, or
Expand All @@ -328,14 +328,14 @@
- Linking enables dApps and tools to access balances consistently across both
address formats.

## HD Paths and Coin Types

Check warning on line 331 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L331

Use sentence case for headings: 'HD Paths and Coin Types'.

When deriving a private key from a mnemonic phrase, the hierarchical
deterministic (HD) path involves multiple parameters, including the coin type.
The coin type determines the blockchain ecosystem for which the key is derived,
making it crucial when dealing with different wallets and blockchains.

### Coin Type Parameter

Check warning on line 338 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L338

Use sentence case for headings: 'Coin Type Parameter'.

The second parameter in the HD path specifies the coin type, which is defined by
the BIP-44 standard. This parameter identifies the blockchain ecosystem
Expand All @@ -355,7 +355,7 @@
different set of keys for each coin type, meaning the derived addresses will
differ.

### Private Key Export

Check warning on line 358 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L358

Use sentence case for headings: 'Private Key Export'.

Users can export their private key from MetaMask (derived using coin type 60)
and import it into any Cosmos wallet. This works because the private key, once
Expand All @@ -363,12 +363,12 @@
receiving wallet supports the import function. This allows users to manage their
assets across various blockchains using the same underlying cryptographic key.

### Example HD Paths

Check warning on line 366 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L366

Use sentence case for headings: 'Example HD Paths'.

- **Traditional Cosmos Path**: `m/44'/118'/0'/0/0`
- **Traditional EVM Path**: `m/44'/60'/0'/0/0`

## Generating Wallets

Check warning on line 371 in learn/accounts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/accounts.mdx#L371

Use sentence case for headings: 'Generating Wallets'.

### Deriving bech32 and hex addresses from pubkey

Expand Down
2 changes: 1 addition & 1 deletion learn/general-governance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,22 @@

Sei employs an on-chain governance system that enables SEI holders to participate in the decision-making process for the network. This system is built on the Cosmos SDK governance module with several enhancements specific to Sei's architecture.

## How Governance Works

Check warning on line 10 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L10

Use sentence case for headings: 'How Governance Works'.

1. **Proposal Submission** — Anyone can submit a governance proposal with an initial deposit.
2. **Deposit Period** — Community members can contribute to the proposal deposit.
3. **Voting Period** — Once minimum deposit is reached, voting begins.
4. **Execution** — Approved proposals are automatically executed.

### Governance Logic

Check warning on line 17 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L17

Use sentence case for headings: 'Governance Logic'.

- **Quorum Requirement** — A minimum percentage of bonded tokens must participate in voting for a proposal to be valid.
- **Approval Threshold** — A proposal must receive more than 50% approval (excluding abstain votes) to pass, or 66.7% for expedited proposals.
- **Veto Protection** — If more than 33.4% of votes are "NoWithVeto", the proposal is vetoed regardless of other vote counts.

## Network Parameters

Check warning on line 23 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L23

Use sentence case for headings: 'Network Parameters'.

### Production Network (Mainnet)

Check warning on line 25 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L25

Use sentence case for headings: 'Production Network (Mainnet)'.

Live network parameters for pacific-1

Expand All @@ -39,7 +39,7 @@
| Expedited Threshold | 66.7% | Fast-track proposals |
| Veto Threshold | 33.4% | Maximum veto votes allowed |

### Development Networks (Testnet)

Check warning on line 42 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L42

Use sentence case for headings: 'Development Networks (Testnet)'.

Changed testing parameters for atlantic-2

Expand All @@ -50,9 +50,9 @@
| Voting Period | 12 hours | Fast testing cycles |
| Expedited Voting Period | 6 hours | Fast testing cycles |

## Vote Types

Check warning on line 53 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L53

Use sentence case for headings: 'Vote Types'.

### Voting Options

Check warning on line 55 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L55

Use sentence case for headings: 'Voting Options'.

Understand the different voting options available.

Expand All @@ -61,7 +61,7 @@
3. **Abstain** — Neutral position. Counts toward quorum but not approval threshold.
4. **NoWithVeto** — Strong opposition. Can veto a proposal if threshold is exceeded.

## Weighted Voting

Check warning on line 64 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L64

Use sentence case for headings: 'Weighted Voting'.

**Advanced Voting**

Expand All @@ -70,7 +70,7 @@
- **Flexibility** — Distribute voting power across different options based on preference strength.
- **Precision** — Express nuanced positions on complex proposals with percentage allocations.

## Proposal Outcomes

Check warning on line 73 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L73

Use sentence case for headings: 'Proposal Outcomes'.

| Outcome | Conditions |
| --- | --- |
Expand All @@ -79,13 +79,13 @@
| Failed (No Quorum) | Less than 33.4% of bonded tokens participated · Proposal automatically fails |
| Vetoed | More than 33.4% of votes were "NoWithVeto" · Indicates strong community opposition |

## Best Practices

Check warning on line 82 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L82

Use sentence case for headings: 'Best Practices'.

### Community Engagement

Check warning on line 84 in learn/general-governance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-governance.mdx#L84

Use sentence case for headings: 'Community Engagement'.

Guidelines for effective governance participation.

- **Research Thoroughly** — Read proposals completely and understand their implications before voting.
- **Research Thoroughly** — Read proposals and understand their implications before voting.
- **Engage in Discussion** — Participate in community forums and discussions to better understand different perspectives.
- **Vote Responsibly** — Consider the long-term implications of proposals for the network and ecosystem.
- **Stay Informed** — Follow governance updates and participate actively in the democratic process.
2 changes: 1 addition & 1 deletion learn/general-staking.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

Check warning on line 1 in learn/general-staking.mdx

View workflow job for this annotation

GitHub Actions / audit

Description is 174 chars (ideal 50-160)
title: 'Sei Blockchain Staking Guide'
sidebarTitle: 'Staking'
description: "Participate in Sei's proof-of-stake consensus by staking tokens with validators, with detailed explanations of delegation, rewards, slashing risks, and the unbonding process."
Expand All @@ -21,11 +21,11 @@
own stake.

The Sei protocol incentivizes validators and delegators with staking rewards
from gas fees and genesis token unlocks. All rewards are distributed
from gas and genesis token unlocks. All rewards are distributed
to delegators proportional to their delegation, and the validator keeps a percentage of this as commission.
Users can view a validator's commission rate on the Sei Dashboard, or by querying the validator information on-chain.

## How to Stake

Check warning on line 28 in learn/general-staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-staking.mdx#L28

Use sentence case for headings: 'How to Stake'.

Staking on Sei can be done through the Sei Dashboard, via the `seid` CLI, or even
through API calls.
Expand All @@ -34,7 +34,7 @@
- **seid CLI**: `seid tx staking [command] [flags]`
- **REST/RPC**: `GET/POST /staking/*`

## Key Concepts

Check warning on line 37 in learn/general-staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-staking.mdx#L37

Use sentence case for headings: 'Key Concepts'.

### Delegation

Expand Down Expand Up @@ -71,7 +71,7 @@
done through delegation. The tokens are locked and contribute to the validator's
stake, starting to earn rewards immediately.

### Un-Bonding

Check warning on line 74 in learn/general-staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-staking.mdx#L74

Use sentence case for headings: 'Un-Bonding'.

Delegators can un-bond or un-stake their Sei tokens, initiating a 21-day period
during which the tokens do not earn rewards and cannot be transferred. After
Expand All @@ -93,7 +93,7 @@

There is no slashing of funds in Sei.

## Common Questions

Check warning on line 96 in learn/general-staking.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/general-staking.mdx#L96

Use sentence case for headings: 'Common Questions'.

### How are staking rewards calculated?

Expand Down
Loading
Loading