> ## Documentation Index
> Fetch the complete documentation index at: https://cosmos-docs-cosmjs-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# CosmWasm Queries

> Query smart contract state, metadata, and code info on CosmWasm-enabled chains

For chains running CosmWasm, `CosmWasmClient` supports JSON smart queries and raw state lookups against contract storage. The wasm extension on `QueryClient` provides additional methods for code and contract metadata.

## Smart Queries

```typescript theme={"system"}
import { CosmWasmClient } from "@cosmjs/cosmwasm";

const client = await CosmWasmClient.connect("https://rpc.my-chain.network");

const result = await client.queryContractSmart("osmo1contractaddr...", {
  get_count: {},
});
console.info(result); // { count: 42 }
```

## Raw State Access

```typescript theme={"system"}
import { toAscii } from "@cosmjs/encoding";

const raw = await client.queryContractRaw("osmo1contractaddr...", toAscii("config"));
```

## Using the Wasm Extension

The wasm extension on `QueryClient` provides additional methods for listing codes, contracts, and reading full contract state:

```typescript theme={"system"}
import { QueryClient } from "@cosmjs/stargate";
import { setupWasmExtension } from "@cosmjs/cosmwasm";
import { connectComet } from "@cosmjs/tendermint-rpc";

const cometClient = await connectComet("https://rpc.my-chain.network");
const queryClient = QueryClient.withExtensions(cometClient, setupWasmExtension);

const codes = await queryClient.wasm.listCodeInfo();
const contracts = await queryClient.wasm.listContractsByCodeId(1);
const contractInfo = await queryClient.wasm.getContractInfo("osmo1contractaddr...");
const history = await queryClient.wasm.getContractCodeHistory("osmo1contractaddr...");
const allState = await queryClient.wasm.getAllContractState("osmo1contractaddr...");
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Querying Overview" icon="magnifying-glass" href="/cosmjs/v0.38.x/guides/query/querying">
    All available query methods and extensions.
  </Card>

  <Card title="Custom Extensions" icon="puzzle-piece" href="/cosmjs/v0.38.x/guides/query/custom-extensions">
    Write query extensions for custom modules.
  </Card>
</CardGroup>
