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



# Class: DAO


Helper class and factory for DAOs.

## Index

### Properties

* [avatar](DAO.md#avatar)
* [controller](DAO.md#controller)
* [hasUController](DAO.md#hasUController)
* [reputation](DAO.md#reputation)
* [token](DAO.md#token)


### Methods

* [getGlobalConstraints](DAO.md#getGlobalConstraints)
* [getName](DAO.md#getName)
* [getSchemes](DAO.md#getSchemes)
* [getTokenName](DAO.md#getTokenName)
* [getTokenSymbol](DAO.md#getTokenSymbol)
* [isGlobalConstraintRegistered](DAO.md#isGlobalConstraintRegistered)
* [isSchemeRegistered](DAO.md#isSchemeRegistered)
* [at](DAO.md#at)
* [getDaos](DAO.md#getDaos)
* [getGenesisDao](DAO.md#getGenesisDao)
* [new](DAO.md#new)



---
## Properties
<a id="avatar"></a>

###  avatar

**●  avatar**:  *`any`* 

*Defined in dao.ts:165*



TruffleContract for the DAO's Avatar




___

<a id="controller"></a>

###  controller

**●  controller**:  *`any`* 

*Defined in dao.ts:169*



TruffleContract for the DAO's controller (Controller or UController by default, see DAO.hasUController)




___

<a id="hasUController"></a>

###  hasUController

**●  hasUController**:  *`boolean`* 

*Defined in dao.ts:173*



`true` if the DAO is using Arc's universal controller




___

<a id="reputation"></a>

###  reputation

**●  reputation**:  *`any`* 

*Defined in dao.ts:181*



TruffleContract for the DAO's native reputation (Reputation)




___

<a id="token"></a>

###  token

**●  token**:  *`any`* 

*Defined in dao.ts:177*



TruffleContract for the DAO's native token (DAOToken by default)




___


## Methods
<a id="getGlobalConstraints"></a>

###  getGlobalConstraints

► **getGlobalConstraints**(name?: *`string`*): `Promise`.<`Array`.<[DaoGlobalConstraintInfo](../interfaces/DaoGlobalConstraintInfo.md)>>



*Defined in dao.ts:200*



Returns the promise of all os the global constraints currently registered into this DAO, as Array<daoglobalconstraintinfo></daoglobalconstraintinfo>


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| name | `string`   |  Optionally filter by the name of a global constraint, like "TokenCapGC" |





**Returns:** `Promise`.<`Array`.<[DaoGlobalConstraintInfo](../interfaces/DaoGlobalConstraintInfo.md)>>





___

<a id="getName"></a>

###  getName

► **getName**(): `Promise`.<`string`>



*Defined in dao.ts:229*



Returns the promise of the name of the DAO as stored in the Avatar




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







___

<a id="getSchemes"></a>

###  getSchemes

► **getSchemes**(name?: *`string`*): `Promise`.<`Array`.<[DaoSchemeInfo](../interfaces/DaoSchemeInfo.md)>>



*Defined in dao.ts:187*



Returns the promise of all of the schemes registered into this DAO, as Array<daoschemeinfo></daoschemeinfo>


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| name | `string`   |  Optionally filter by the name of a scheme, like "SchemeRegistrar" |





**Returns:** `Promise`.<`Array`.<[DaoSchemeInfo](../interfaces/DaoSchemeInfo.md)>>





___

<a id="getTokenName"></a>

###  getTokenName

► **getTokenName**(): `Promise`.<`string`>



*Defined in dao.ts:238*



Returns the promise of the token name for the DAO as stored in the native token




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







___

<a id="getTokenSymbol"></a>

###  getTokenSymbol

► **getTokenSymbol**(): `Promise`.<`string`>



*Defined in dao.ts:246*



Returns the promise of the token symbol for the DAO as stored in the native token




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







___

<a id="isGlobalConstraintRegistered"></a>

###  isGlobalConstraintRegistered

► **isGlobalConstraintRegistered**(gc: *[Address](../#Address)*): `Promise`.<`boolean`>



*Defined in dao.ts:221*



Returns whether the global constraint with the given address is registered to this DAO's controller


**Parameters:**

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





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





___

<a id="isSchemeRegistered"></a>

###  isSchemeRegistered

► **isSchemeRegistered**(schemeAddress: *[Address](../#Address)*): `Promise`.<`boolean`>



*Defined in dao.ts:214*



Returns whether the scheme with the given address is registered to this DAO's controller


**Parameters:**

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





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





___

<a id="at"></a>

### «Static» at

► **at**(avatarAddress: *[Address](../#Address)*): `Promise`.<[DAO](DAO.md)>



*Defined in dao.ts:69*



Returns the promise of a DAO at the given address. Throws an exception if not found.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| avatarAddress | [Address](../#Address)   |  The DAO's address |





**Returns:** `Promise`.<[DAO](DAO.md)>





___

<a id="getDaos"></a>

### «Static» getDaos

► **getDaos**(options: *[GetDaosOptions](../interfaces/GetDaosOptions.md)*): `Promise`.<`Array`.<[Address](../#Address)>>



*Defined in dao.ts:120*



Return a promise of an array of avatar addresses for all of the DAOs created by the optionally-given DaoCreator contract. The default DaoCreator is the one deployed by the running version of Arc.js.

An alternative DaoCreator must implement an InitialSchemesSet event just like the Arc DaoCreater.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| options | [GetDaosOptions](../interfaces/GetDaosOptions.md)   |  - |





**Returns:** `Promise`.<`Array`.<[Address](../#Address)>>





___

<a id="getGenesisDao"></a>

### «Static» getGenesisDao

► **getGenesisDao**(daoCreatorAddress?: *[Address](../#Address)*): `Promise`.<`string`>



*Defined in dao.ts:85*



Returns the promise of the DAOstack Genesis avatar address, or undefined if not found


**Parameters:**

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





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





___

<a id="new"></a>

### «Static» new

► **new**(options: *[NewDaoConfig](../interfaces/NewDaoConfig.md)*): `Promise`.<[DAO](DAO.md)>



*Defined in dao.ts:21*



Returns the promise of a new DAO


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| options | [NewDaoConfig](../interfaces/NewDaoConfig.md)   |  Configuration of the new DAO |





**Returns:** `Promise`.<[DAO](DAO.md)>





___


