> For the complete documentation index, see [llms.txt](https://docs.gnoswap.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gnoswap.io/contracts/gov/governance/proposal.gno.md).

# proposal.gno

{% embed url="<https://github.com/gnoswap-labs/gnoswap/blob/main/contract/r/gnoswap/gov/governance/v1/governance_propose.gno>" %}

## ProposeText

```go
func ProposeText(
	cur realm,
	title string,
	description string
) int64
```

ProposeText creates a new text proposal with the provided data.

#### Parameters

| Name          | Type   | Description                      |
| ------------- | ------ | -------------------------------- |
| `cur`         | realm  | Pass `cross` as argument.        |
| `title`       | string | The title of the proposal.       |
| `description` | string | The description of the proposal. |

#### Return Values

| Name         | Type  | Description             |
| ------------ | ----- | ----------------------- |
| `proposalId` | int64 | The ID of the proposal. |

## ProposeCommunityPoolSpend

```go
func ProposeCommunityPoolSpend(
	cur realm,
	title string,
	description string,
	to address,
	tokenPath string,
	amount int64
) int64
```

ProposeCommunityPoolSpend creates a CommunityPoolSpend proposal with the provided data.

#### Parameters

| Name          | Type    | Description                             |
| ------------- | ------- | --------------------------------------- |
| `cur`         | realm   | Pass `cross` as argument.               |
| `title`       | string  | The title of the proposal.              |
| `description` | string  | The description of the proposal.        |
| `to`          | address | The address to receive the spent token. |
| `tokenPath`   | string  | The path of the token to be sent.       |
| `amount`      | int64   | The amount of the token to be sent.     |

#### Return Values

| Name         | Type  | Description             |
| ------------ | ----- | ----------------------- |
| `proposalId` | int64 | The ID of the proposal. |

## ProposeParameterChange

```go
func ProposeParameterChange(
	cur realm,
	title string,
	description string,
	numToExecute int64,
	executions string
) int64
```

ProposeParameterChange creates a ParameterChange proposal with the provided data.

#### Parameters

| Name           | Type   | Description                       |
| -------------- | ------ | --------------------------------- |
| `cur`          | realm  | Pass `cross` as argument.         |
| `title`        | string | The title of the proposal.        |
| `description`  | string | The description of the proposal.  |
| `numToExecute` | int64  | The number of changes to execute. |
| `executions`   | string | The list of changes to execute.   |

#### Return Values

| Name         | Type  | Description             |
| ------------ | ----- | ----------------------- |
| `proposalId` | int64 | The ID of the proposal. |
