[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)
* [name](DAO.md#name)
* [reputation](DAO.md#reputation)
* [token](DAO.md#token)


### Methods

* [getGlobalConstraints](DAO.md#getGlobalConstraints)
* [getParticipants](DAO.md#getParticipants)
* [getSchemes](DAO.md#getSchemes)
* [getTokenBalance](DAO.md#getTokenBalance)
* [getTokenName](DAO.md#getTokenName)
* [getTokenSymbol](DAO.md#getTokenSymbol)
* [isGlobalConstraintRegistered](DAO.md#isGlobalConstraintRegistered)
* [isSchemeRegistered](DAO.md#isSchemeRegistered)
* [at](DAO.md#at)
* [getDaoCreationEvents](DAO.md#getDaoCreationEvents)
* [getDaos](DAO.md#getDaos)
* [new](DAO.md#new)



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

###  avatar

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

*Defined in dao.ts:128*



Truffle contract wrapper for the DAO's Avatar




___

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

###  controller

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

*Defined in dao.ts:132*



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




___

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

###  hasUController

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

*Defined in dao.ts:136*



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




___

<a id="name"></a>

###  name

**●  name**:  *`string`* 

*Defined in dao.ts:148*



the name of the DAO




___

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

###  reputation

**●  reputation**:  *[ReputationWrapper](ReputationWrapper.md)* 

*Defined in dao.ts:144*



Truffle contract wrapper for the DAO's native reputation (Reputation)




___

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

###  token

**●  token**:  *[DaoTokenWrapper](DaoTokenWrapper.md)* 

*Defined in dao.ts:140*



Truffle contract wrapper 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:167*



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="getParticipants"></a>

###  getParticipants

► **getParticipants**(options?: *[GetParticipantsOptions](../interfaces/GetParticipantsOptions.md)*): `Promise`.<`Array`.<[Participant](../interfaces/Participant.md)>>



*Defined in dao.ts:184*



Returns promise of an array of `Participant` representing accounts that currently have greater-than-zero reputation with this DAO. Optionally returns the current reputation of each participant.


**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| options | [GetParticipantsOptions](../interfaces/GetParticipantsOptions.md)  |  {} as GetParticipantsOptions |   - |





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





___

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

###  getSchemes

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



*Defined in dao.ts:154*



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="getTokenBalance"></a>

###  getTokenBalance

► **getTokenBalance**(agentAddress: *[Address](../#Address)*): `Promise`.<`BigNumber`>



*Defined in dao.ts:234*



Returns a promise of the given account's native token balance.


**Parameters:**

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





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





___

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

###  getTokenName

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



*Defined in dao.ts:241*



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:249*



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:226*



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:219*



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:67*



Returns the promise of a DAO at the given address. Returns undefined if not found.


**Parameters:**

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





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





___

<a id="getDaoCreationEvents"></a>

### «Static» getDaoCreationEvents

► **getDaoCreationEvents**(options?: *[GetDaosOptions](../interfaces/GetDaosOptions.md)*): `Promise`.<[EntityFetcherFactory](../#EntityFetcherFactory)[Address](../#Address), [InitialSchemesSetEventResult](../interfaces/InitialSchemesSetEventResult.md)>



*Defined in dao.ts:109*



Return a promise of an EntityFetcherFactory to get/watch 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 | Default value | Description |
| ------ | ------ | ------ | ------ |
| options | [GetDaosOptions](../interfaces/GetDaosOptions.md)  |  {} |   Optional, default is `{}`. |





**Returns:** `Promise`.<[EntityFetcherFactory](../#EntityFetcherFactory)[Address](../#Address), [InitialSchemesSetEventResult](../interfaces/InitialSchemesSetEventResult.md)>





___

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

### «Static» getDaos

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



*Defined in dao.ts:96*



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 | Default value | Description |
| ------ | ------ | ------ | ------ |
| options | [GetDaosOptions](../interfaces/GetDaosOptions.md)  |  {} |   - |





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





___

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

### «Static» new

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



*Defined in dao.ts:24*



Returns the promise of a new DAO


**Parameters:**

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





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





___


