> For the complete documentation index, see [llms.txt](https://docs.bitplanet.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bitplanet.ai/governance/submitting-proposals.md).

# Submitting Proposals

This guide walks you through creating and submitting governance proposals on Bitplanet. Whether you're requesting CORE tokens, updating parameters, or proposing community initiatives, the process remains consistent.

> **Note for AI Creators and Contributors**: If you're using a platform like [Deva](https://deva.me/), the platform handles governance proposals on your behalf. You don't need to submit proposals directly. This guide is primarily for:
>
> * **Platform developers** building Applications on Bitplanet
> * **Advanced users** who want to submit proposals directly
> * **Validators and delegators** participating in governance

## Before You Submit

### Requirements

* **10,000,000 BPL deposit** (10M BPL tokens)
* Cosmos address (starts with `bitplanet1...`)
* Access to `evmd` CLI or compatible wallet

The deposit is refunded if your proposal passes or fails normally. It's only burned if the proposal is vetoed (≥33.4% `NO_WITH_VETO` votes).

### Preparation Steps

1. **Draft your idea** with clear objectives and rationale
2. **Discuss with the community** on forums or social channels
3. **Refine based on feedback** to increase approval chances
4. **Prepare your deposit** or coordinate with supporters who can contribute

Community discussion before submission significantly improves proposal success rates. Use this phase to identify concerns and adjust your approach.

## Proposal Structure

All proposals follow the same JSON format:

```json
{
  "title": "Concise Proposal Title",
  "summary": "Detailed explanation of what this proposal does and why",
  "messages": [
    {
      "@type": "/cosmos.evm.brahma.v1.MsgCoreGrantApplication",
      "authority": "bitplanet10d07y265gmmuvt4z0w9aw880jnsr700j6dzaa2",
      // ... message-specific fields
    }
  ],
  "deposit": "10000000bplcoin"
}
```

### Required Fields

* **title**: Short description (under 100 characters)
* **summary**: Full explanation with context and expected impact
* **messages**: Array of governance actions to execute
* **deposit**: Initial deposit amount (minimum 10,000,000 BPL)

## Proposal Types

### Core Grant Application

Request CORE token allocation permission to bootstrap AI agents on a platform.

**When to Use**: You're operating an AI platform (like Deva) and need permission to request CORE tokens for AI creators and distribute them as they make contributions. Individual AI creators don't submit these proposals - platforms do on behalf of their user communities.

**Example**:

```json
{
  "title": "Bootstrap AlphaAI Language Model",
  "summary": "Requesting 50 CORE tokens to launch AlphaAI, a language model for technical documentation. Team has 3 years experience in NLP, proven track record with open-source projects.",
  "messages": [
    {
      "@type": "/cosmos.evm.brahma.v1.MsgCoreGrantApplication",
      "requester": "bitplanet1hj5fveer5cjtn4wd6wstzugjfdxzl0xps73ftl",
      "core_allocation": "50",
      "title": "Bootstrap AlphaAI",
      "description": "AlphaAI specializes in generating technical documentation from codebases. Initial 50 CORE tokens will create GEM supply for early adopters and contributors."
    }
  ],
  "deposit": "10000000bplcoin"
}
```

**Key Fields**:

* `requester`: Your Cosmos address (bitplanet1...)
* `core_allocation`: Number of CORE tokens as string (max 100 per proposal)
* `title`: Proposal title
* `description`: Detailed explanation

**Note**: The `authority` field is automatically set to the governance module address by the chain and should not be included in Core Grant Application proposals.

### Remove Core Grant Application

Revoke a previously granted CORE allocation.

**When to Use**: A grant recipient has violated terms, abandoned their project, or allocation needs revocation for security reasons.

**Example**:

```json
{
  "title": "Revoke Core Grant for Abandoned AlphaAI Project",
  "summary": "AlphaAI project has shown no development activity for 8 months, with no community engagement and unresponsive team. Revoking 50 CORE allocation to prevent indefinite reservation of resources.",
  "messages": [
    {
      "@type": "/cosmos.evm.brahma.v1.MsgRemoveCoreGrantApplication",
      "authority": "bitplanet10d07y265gmmuvt4z0w9aw880jnsr700j6dzaa2",
      "requester": "bitplanet1hj5fveer5cjtn4wd6wstzugjfdxzl0xps73ftl",
      "reason": "Project abandoned - no development activity for 8 months, team unresponsive to community inquiries"
    }
  ],
  "deposit": "10000000bplcoin"
}
```

**Key Fields**:

* `authority`: Governance module address (required for this message type)
* `requester`: Address whose grant will be revoked
* `reason`: Mandatory explanation for governance transparency and audit purposes

### Parameter Update

Modify economic or technical parameters.

**When to Use**: Adjust reward splits, increase limits, or change contribution types.

**Important**: You must provide the **complete parameter set** (all 12 parameters), not just values you're changing. Missing any parameter will cause validation errors.

**Example** (adjusting reward splits):

```json
{
  "title": "Adjust Reward Splits to 50/30/20",
  "summary": "Align reward distribution with the canonical split: 50% creator, 30% Application, 20% contributor.",
  "messages": [
    {
      "@type": "/cosmos.evm.brahma.v1.MsgUpdateParams",
      "authority": "bitplanet10d07y265gmmuvt4z0w9aw880jnsr700j6dzaa2",
      "params": {
        "max_core_grant_allocation": 100,
        "core_grant_application_expiry_height": 1000,
        "contribution_types": {
          "types": [
            {"name": "TRAIN", "description": "Training contributions", "active": true},
            {"name": "REFER", "description": "Referral contributions", "active": true},
            {"name": "CREATE", "description": "Creation contributions", "active": true},
            {"name": "PROMPT", "description": "Prompt contributions", "active": true}
          ]
        },
        "creator_split": "0.5",
        "application_split": "0.3",
        "contributor_split": "0.2",
        "siphon_percentage": "0.05",
        "evm_gas_limit": 25000000,
        "evm_gas_cap": 25000000,
        "max_ais_for_rewards": 500,
        "max_ai_block_heights": 1000,
        "max_tensor_rows_per_block": 1000
      }
    }
  ],
  "deposit": "10000000bplcoin"
}
```

**Validation Rules**:

* All splits must sum to 1.0
* Siphon percentage between 0 and 1
* Contribution types must include "CREATE"
* ALL 12 parameters required (cannot update individual parameters)

### Text Proposal

Signal community consensus without executing code.

**When to Use**: Gauge support for future directions, establish standards, coordinate initiatives.

**Example**:

```json
{
  "title": "Establish Quarterly Developer Grant Program",
  "summary": "Create program allocating 100,000 BPL per quarter to developers building on Bitplanet. Funding sources from treasury, selection via community voting.",
  "messages": [],
  "deposit": "10000000bplcoin"
}
```

Text proposals have **empty messages array** since they don't execute on-chain actions.

### Governance Parameter Change

Modify governance rules themselves.

**When to Use**: Adjust voting periods, quorum requirements, or deposit amounts.

**Example**:

```json
{
  "title": "Reduce Voting Period to 5 Days",
  "summary": "Current 7-day voting period delays urgent decisions. Proposal reduces to 5 days while maintaining same quorum/threshold requirements.",
  "messages": [
    {
      "@type": "/cosmos.gov.v1.MsgUpdateParams",
      "authority": "bitplanet10d07y265gmmuvt4z0w9aw880jnsr700j6dzaa2",
      "params": {
        "min_deposit": [{"denom": "bplcoin", "amount": "10000000"}],
        "max_deposit_period": "120h0m0s",
        "voting_period": "120h0m0s",
        "quorum": "0.334000000000000000",
        "threshold": "0.500000000000000000",
        "veto_threshold": "0.334000000000000000"
      }
    }
  ],
  "deposit": "10000000bplcoin"
}
```

## Submission Process

### Using CLI

**Step 1**: Save your proposal to a JSON file (e.g., `proposal.json`)

**Step 2**: Submit using `evmd`:

```bash
evmd tx gov submit-proposal proposal.json \
  --from your-account \
  --chain-id 9001 \
  --node http://localhost:26657 \
  --gas auto \
  --gas-adjustment 1.5 \
  --fees 50000bplcoin
```

**Step 3**: Note the proposal ID from the transaction response

**Step 4**: Monitor status:

```bash
# Check proposal details
evmd query gov proposal <proposal-id> --node http://localhost:26657

# Check deposit status
evmd query gov deposits <proposal-id> --node http://localhost:26657
```

### Command Parameters

* `--from`: Your account name or address
* `--chain-id`: Network ID (9001 for Bitplanet mainnet)
* `--node`: RPC endpoint (use public RPC or your own node)
* `--gas auto`: Automatically estimate gas
* `--gas-adjustment`: Gas multiplier (1.5 = 150% of estimate)
* `--fees`: Transaction fees in bplcoin

## After Submission

### Deposit Period (7 Days)

Your proposal enters deposit period immediately. Others can contribute to reach the 10M BPL minimum:

```bash
# Add deposit to a proposal
evmd tx gov deposit <proposal-id> 1000000bplcoin \
  --from contributor-account \
  --chain-id 9001 \
  --node http://localhost:26657
```

If minimum deposit isn't reached within 7 days, the proposal expires and all deposits are refunded.

### Voting Period (7 Days)

Once minimum deposit is reached, voting begins automatically. During this period:

**Engage with voters**: Answer questions on forums and social channels

**Monitor votes**: Track voting progress using queries:

```bash
# Check vote tally
evmd query gov tally <proposal-id> --node http://localhost:26657

# Check specific votes
evmd query gov votes <proposal-id> --node http://localhost:26657
```

**Address concerns**: If opposition emerges, engage constructively to address concerns

### Execution

If your proposal passes (≥33.4% quorum, ≥50% YES, <33.4% veto), it executes automatically. No manual intervention required.

**For Core Grant Applications**: After approval, you can claim your allocated CORE tokens by submitting a `MsgRequestForCore` transaction:

**Step 1**: Create a JSON file (`request-for-core.json`) with your AI tensor data:

```json
{
  "Requester": "bitplanet1hj5fveer5cjtn4wd6wstzugjfdxzl0xps73ftl",
  "AITensors": [
    {
      "tensor": [
        {
          "address": "bitplanet1contributor1...",
          "contributions": [10, 5, 3, 2]
        },
        {
          "address": "bitplanet1contributor2...",
          "contributions": [8, 4, 6, 1]
        }
      ],
      "AI": "0xYourAIIdentifier..."
    }
  ]
}
```

**Step 2**: Submit the request:

```bash
evmd tx brahma rfc request-for-core.json \
  --from your-account \
  --chain-id 9001 \
  --node http://localhost:26657 \
  --gas auto \
  --gas-adjustment 1.5
```

The AI tensor specifies how CORE tokens will be distributed among contributors based on their contribution types. Each CORE allocation you received can only be claimed once.

***

## Additional Resources

* [**Governance Overview**](/governance/governance.md) - Understanding how governance works
* [**Participate as a Validator**](/participants/for-validators.md) - Run a validator and vote on proposals
* [**Token Economics**](/tokenomics/token-economics.md) - Understand economic parameters controlled by governance
