> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orica.markets/llms.txt
> Use this file to discover all available pages before exploring further.

# Boosting

> Boost messages to increase their visibility.

Boosting allows position holders to amplify important dispute messages with their position weight.

***

## Boost a Message

> [tab] TypeScript
>
> ```typescript theme={"dark"}
> const messagePubkey = new PublicKey("Message123...");
> const [position] = sdk.orica.pda.position(marketAddress, wallet.publicKey);
>
> const instruction = await sdk.disputes.buildBoostMessage(
>   wallet.publicKey,
>   marketAddress,
>   messagePubkey,
>   position
> );
>
> const tx = new Transaction().add(instruction);
> await sendAndConfirmTransaction(connection, tx, [wallet]);
> ```

> [tab] Python
>
> ```python theme={"dark"}
> message_pubkey = Pubkey.from_string("Message123...")
> position, _ = sdk.orica.pda.position(market_address, wallet.pubkey())
>
> instruction = await sdk.disputes.build_boost_message(
>     booster=wallet.pubkey(),
>     market=market_address,
>     message_pubkey=message_pubkey,
>     booster_position=position,
> )
>
> tx = Transaction()
> tx.add(instruction)
> await connection.send_transaction(tx, wallet)
> ```

***

## Fetch Boost Record

Check if a user has boosted a message:

> [tab] TypeScript
>
> ```typescript theme={"dark"}
> const boostRecord = await sdk.disputes.fetchBoostRecord(messagePubkey, userPubkey);
>
> if (boostRecord) {
>   console.log("Boost amount:", boostRecord.amount.toString());
> } else {
>   console.log("User has not boosted this message");
> }
> ```

> [tab] Python
>
> ```python theme={"dark"}
> boost_record = await sdk.disputes.fetch_boost_record(message_pubkey, user_pubkey)
>
> if boost_record:
>     print(f"Boost amount: {boost_record.amount}")
> else:
>     print("User has not boosted this message")
> ```

***

## Boost Record Structure

> [tab] TypeScript
>
> ```typescript theme={"dark"}
> interface BoostRecord {
>   message: PublicKey;
>   booster: PublicKey;
>   amount: BN;
>   bump: number;
> }
> ```

> [tab] Python
>
> ```python theme={"dark"}
> @dataclass
> class BoostRecord:
>     message: Pubkey
>     booster: Pubkey
>     amount: int
>     bump: int
> ```

***

## Boosting Rules

* Must have a position in the market to boost
* Boost amount equals position value at time of boosting
* Each user can boost a message only once
* Boosts are cumulative on the message

***

## Check Total Boosts on a Message

> [tab] TypeScript
>
> ```typescript theme={"dark"}
> const [dispute] = sdk.disputes.pda.dispute(marketAddress);
> const messages = await sdk.disputes.fetchDisputeMessages(dispute);
>
> for (const { publicKey, account } of messages) {
>   console.log("Message:", publicKey.toBase58());
>   console.log("Total boost amount:", account.boostAmount.toString());
> }
> ```

> [tab] Python
>
> ```python theme={"dark"}
> dispute, _ = sdk.disputes.pda.dispute(market_address)
> messages = await sdk.disputes.fetch_dispute_messages(dispute)
>
> for address, message in messages:
>     print(f"Message: {address}")
>     print(f"Total boost amount: {message.boost_amount}")
> ```

***

## Next Steps

> [card] [Messages](https://docs.orica.markets/sdk/messages.md)
>
> Post dispute messages.

> [card] [Voting](https://docs.orica.markets/sdk/voting.md)
>
> Cast votes in disputes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.