# getModule

The `getModule` method is the most basic way to get the interact-able contract instance for a given module.

**Import**: imported as follows

```typescript
import { getModule } from '@inverter-network/sdk'
```

**Parameters**: an object with the following properties

```ts
({
  // the name of the module
  name: ModuleName
} | {
  // manually passed module data
  moduleData: ModuleData
}) & {
    // the address of the deployed module
    address: `0x${string}`
    // the public client or provider to make RPC calls
    publicClient: PublicClient
    // the wallet client to sign and submit transactions
    walletClient?: WalletClient
    // The parser config, in charge of decimals, ...
    tagConfig?: TagConfig
    // The Inverter instance in charge of cache
    self?: Inverter
}
```

**Returns**: a `Module` object with the following properties

{% code overflow="wrap" %}

```ts
{
    // the name of the module
    name: ModuleName | ModuleData['name']
    // the address of the deployed module
    address: `0x${string}`
    // the type of the module (e.g. authorizer)
    moduleType: ModuleType
    // short description of the module taken from the contract NatSpec documentation
    description: string
    // the write method
    write: {
        [functionName: string]: {
            // name of the function
            name: string
            // description of what the function does taken from NatSpec
            description: string
            // inputs of the abi item
            inputs: ExtendedAbiParameter[]
            // outputs of the abi member
            outputs: ExtendedAbiParameter[]
            // an asynchronous function that whose parameters are of type Primitive<`inputs`> and return values are of type Primitive<`outputs`>
            run: (args: GetMethodArgs, options?: MethodOptions) => Promise<GetMethodResponse>
        }
    }
    estimateGas: // same as write ...
    simulate: // same as write ...
    read: // same as write ...
    bytecode: // same as write ...
}
```

{% endcode %}


---

# 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.inverter.network/sdk/api/getmodule.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.
