> For the complete documentation index, see [llms.txt](https://docs.gamedao.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gamedao.co/gamedao-protocol/developer-documentation/extrinsics.md).

# Extrinsics

The following sections contain Extrinsics methods are part of the default runtime. On the api, these are exposed via `api.tx.<module>.<method>`.

* [**Control**](#control)
* [**Flow**](#flow)
* [**Sense**](#sense)
* [**Signal**](#signal)

### Control

#### create\_org(name: `String`, cid: `String`, org\_type: `OrgType`, access\_model: `AccessModel`, fee\_model: `FeeModel`, member\_limit: `Option<MemberLimit>`, membership\_fee: `Option<Balance>`, gov\_currency: `Option<CurrencyId>`, pay\_currency: `Option<CurrencyId>`, deposit: `Option<Balance>`)

* **interface**: `api.tx.control.create_org`
* **summary**: Create an on chain organization

  * `name`: org name.
  * `cid`: ipfs content identifier.
  * `org_type`: individual | company | dao | hybrid.
  * `access_model`:
  * `fee_model`:
  * `member_limit`: max members. default: maxmembers.
  * `membership_fee`:
  * `gov_currency`:
  * `pay_currency`:
  * `deposit`: initial deposit for the org treasury (in protocol tokens).

  Emits `OrgCreated` event when successful.

  Weight: `O(1)`

#### update\_org(org\_id: `Hash`, prime\_id: `Option<AccountId>`, org\_type: `Option<OrgType>`, access\_model: `Option<AccessModel>`, member\_limit: `Option<MemberLimit>`, fee\_model: `Option<FeeModel>`, membership\_fee: `Option<Balance>`)

* **interface**: `api.tx.control.update_org`
* **summary**: Update Org

  Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org hash.
  * `prime_id`: new prime id.
  * `org_type`:
  * `access_model`: new access model.
  * `member_limit`: new member limit.
  * `fee_model`: new fee model.
  * `membership_fee`: new membership fee.

  Emits `OrgUpdated` event when successful.

  Weight: `O(1)`

#### enable\_org(org\_id: `Hash`)

* **interface**: `api.tx.control.enable_org`
* **summary**: Enable Org

  Enables an Org to be used and changes it's state to Active. Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org hash.

  Emits `OrgEnabled` event when successful.

  Weight: `O(1)`

#### disable\_org(org\_id: `Hash`)

* **interface**: `api.tx.control.disable_org`
* **summary**: Disable Org

  Disables an Org to be used and changes it's state to Inactive. Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org hash.

  Emits `OrgDisabled` event when successful.

  Weight: `O(1)`

#### add\_member(org\_id: `Hash`, who: `AccountId`)

* **interface**: `api.tx.control.add_member`
* **summary**: Add Member to Org

  Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org id.
  * `who`: account to be added.

  Emits `MemberAdded` event when successful.

  Weight: `O(log n)`

#### remove\_member(org\_id: `Hash`, who: `AccountId`)

* **interface**: `api.tx.control.remove_member`
* **summary**: Remove member from Org

  Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org id.
  * `who`: account to be removed.

  Emits `MemberRemoved` event when successful.

  Weight: `O(log n)`

#### spend\_funds(org\_id: `Hash`, currency\_id: `CurrencyId`, beneficiary: `AccountId`, amount: `Balance`)

* **interface**: `api.tx.control.spend_funds`
* **summary**: Make spending from the org treasury

  Allowed origins: Root or prime if OrgType::Individual

  * `org_id`: org id.
  * `currency_id`: currency to be spent.
  * `beneficiary`: receiver account.
  * `amount`: amount to be spent.

  Emits `FundsSpended` event when successful.

  Weight: `O(1)`

***

### Flow

#### create\_campaign(org\_id: `Hash`, admin\_id: `AccountId`, name: `BoundedVec<u8, StringLimit>`, target: `Balance`, deposit: `Balance`, expiry: `BlockNumber`, protocol: `FlowProtocol`, governance: `FlowGovernance`, cid: `BoundedVec<u8, StringLimit>`, start: `Option<BlockNumber>`, token\_symbol: `Option<BoundedVec<u8, StringLimit>>`, token\_name: `Option<BoundedVec<u8, StringLimit>>`)

* **interface**: `api.tx.flow.create_campaign`
* **summary**:

#### contribute(campaign\_id: `Hash`, contribution: `Balance`)

* **interface**: `api.tx.flow.contribute`
* **summary**: Contribute to project

  * `campaign_id`:
  * `contribution`:

  Emits `CampaignContributed` event when successful.

  Weight: O(1)

***

### Sense

#### create\_entity(account\_id: `AccountId`, cid: `BoundedVec<u8, StringLimit>`)

* **interface**: `api.tx.sense.create_entity`
* **summary**: Create a Sense Entity for the account.

  * `account_id`: account id.
  * `cid`: ipfs content identifier.

  Emits `EntityCreated` event when successful.

  Weight: `O(1)`

#### update\_property(account\_id: `AccountId`, property\_type: `PropertyType`, value: `u8`)

* **interface**: `api.tx.sense.update_property`
* **summary**: Modifies a property of the account.

  * `account_id`: account id.
  * `property_type`: property type (experience, reputation, trust).
  * `value`: value to be incremented to property.

  Emits `PropertyUpdated` event when successful.

  Weight: `O(1)`

***

### Signal

#### proposal(proposal\_type: `ProposalType`, org\_id: `Hash`, title: `BoundedVec<u8, StringLimit>`, cid: `BoundedVec<u8, StringLimit>`, expiry: `BlockNumber`, majority: `Majority`, unit: `Unit`, scale: `Scale`, start: `Option<BlockNumber>`, quorum: `Option<Permill>`, deposit: `Option<Balance>`, campaign\_id: `Option<Hash>`, amount: `Option<Balance>`, beneficiary: `Option<AccountId>`, currency\_id: `Option<CurrencyId>`)

* **interface**: `api.tx.signal.proposal`
* **summary**:

#### vote(proposal\_id: `Hash`, approve: `bool`, deposit: `Option<Balance>`)

* **interface**: `api.tx.signal.vote`
* **summary**:


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.gamedao.co/gamedao-protocol/developer-documentation/extrinsics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
