# Computation

The Computation Layer covers smart contracts (automations), business logic, and workflows on XION.

### Contract development notes

WASM binaries built with the **latest stable Rust** may fail to upload to XION (`xiond tx wasm store`) because the chain does not support WebAssembly **bulk memory** instructions that newer Rust toolchains can emit.

If you run into store or validation errors after upgrading Rust, create `rust-toolchain.toml` at your **contract project root**:

```toml
[toolchain]
channel = "1.86"
targets = ["wasm32-unknown-unknown"]
```

**Why 1.86?** Rust **1.87+** stable releases may emit WebAssembly with **bulk memory** enabled for `wasm32-unknown-unknown`. XION’s `wasm store` and runtime do not support bulk memory today, so uploads can fail even when local builds succeed. **1.86** is the latest stable release known to produce upload-compatible WASM for XION at the time of writing (May 2026). When you upgrade Rust—or when XION enables bulk memory—re-test `xiond tx wasm store` and update the pinned channel if needed.

Rebuild the contract (and re-run the [CosmWasm optimizer](/xion/developers/computation/local-development/deploy-a-cosmwasm-smart-contract.md) if you use Docker) before uploading again. See also the [local environment setup](/xion/developers/computation/local-development/setting-up-env/installation-prerequisites-setup-local-environment.md#rust) guide.

### Overview

Smart contracts on XION are built using CosmWasm and enable:

* **Business Logic**: Automate workflows and processes
* **State Management**: Store and manage application state
* **Integration**: Connect with other XION features (accounts, payments, verification)

### Quick Start

Get started quickly with pre-built app templates:

* [Zero to App in 5 Minutes](/xion/developers/computation/xion-quick-start/zero-to-dapp-in-5-minutes.md)

### Local Development

Learn how to set up your development environment and deploy your first contract:

* [Setting up Environment for XION](/xion/developers/computation/local-development/setting-up-env.md)
* [Interacting with Xion Chain using Xion Daemon](/xion/developers/tools/xiond-cli.md)
* [Deploying Your First Smart Contract on XION](/xion/developers/computation/local-development/deploy-a-cosmwasm-smart-contract.md)

### Contract Library

Browse pre-built, audited contracts you can use in your applications:

* [Re-using Existing Contracts](/xion/developers/computation/re-using-existing-contracts.md)

### Integrations

Learn how to integrate with XION features:

* [Token Factory](/xion/developers/computation/integrations/token-factory.md)
* [Oracles](/xion/developers/computation/integrations/oracles.md)
* [Websockets](/xion/developers/computation/integrations/websockets.md)
* [Indexers: Optimized Data Retrieval](/xion/developers/computation/integrations/indexers.md)

### Use Cases

Explore more example applications and use cases:

* [More Use Cases](/xion/developers/computation/use-cases.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.burnt.com/xion/developers/computation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
