[API Reference](../README.md) > [ControllerService](../classes/ControllerService.md)

# Class: ControllerService

Methods for querying information about an Avatar's controller. Use it by:

```
const controllerService = new ControllerService(avatarAddress);

```

## Hierarchy

**ControllerService**

## Index

### Constructors

* [constructor](ControllerService.md#constructor)

### Methods

* [getController](ControllerService.md#getController)
* [getControllerAddress](ControllerService.md#getControllerAddress)
* [getIsUController](ControllerService.md#getIsUController)

---

## Constructors

<a id="constructor"></a>

###  constructor

⊕ **new ControllerService**(avatarAddress: *[Address](../#Address)*): [ControllerService](ControllerService.md)

*Defined in [controllerService.ts:20](https://github.com/daostack/arc.js/blob/6f704389/lib/controllerService.ts#L20)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| avatarAddress | [Address](../#Address) |

**Returns:** [ControllerService](ControllerService.md)

___

## Methods

<a id="getController"></a>

###  getController

▸ **getController**(): `Promise`<`any`>

*Defined in [controllerService.ts:53](https://github.com/daostack/arc.js/blob/6f704389/lib/controllerService.ts#L53)*

Returns promise of a Truffle contract wrapper for the controller. Could be either UController or Controller. You can know which one by checking the ControllerService instance property `isUController`.

**Returns:** `Promise`<`any`>

___
<a id="getControllerAddress"></a>

###  getControllerAddress

▸ **getControllerAddress**(): `Promise`<`string`>

*Defined in [controllerService.ts:38](https://github.com/daostack/arc.js/blob/6f704389/lib/controllerService.ts#L38)*

Returns promise of the address of the controller

**Returns:** `Promise`<`string`>

___
<a id="getIsUController"></a>

###  getIsUController

▸ **getIsUController**(): `Promise`<`boolean`>

*Defined in [controllerService.ts:30](https://github.com/daostack/arc.js/blob/6f704389/lib/controllerService.ts#L30)*

Returns promise of whether avatar has a universal controller

**Returns:** `Promise`<`boolean`>

___

