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

# Claiming Rewards

>  

Users earn \$TRUST token rewards based on verified social contributions. These rewards accumulate during defined epochs, allowing users to claim them at intervals convenient for them.

**Claiming Rewards Using React Integration**:

```typescript theme={null}
import { useUser } from '@sageprotocol/sdk/react';
import { useWallet } from '@suiet/wallet-kit';

function ClaimRewards({ epoch, ownedUserId, sharedUserId }) {
  const { claimReward } = useUser();
  const { account, signAndExecuteTransaction } = useWallet();

  async function handleClaimRewards() {
    const result = await claimReward({
      epoch,                                  // Sui timestamp for the epoch period
      appId: 'your-app-id',                   // Explicitly required
      network: 'testnet',                     // Explicitly required: 'testnet' or 'mainnet'
      ownedUserId,                            // User's owned user object ID
      sharedUserId                            // User's shared user object ID
    });

    if (result.ok) {
      await signAndExecuteTransaction({ transaction: result.transaction });
      console.log("Rewards claimed successfully!");
    } else {
      console.error("Error claiming rewards:", result.err);
    }
  }

  return (
    <button onClick={handleClaimRewards}>
      Claim Rewards
    </button>
  );
}

export default ClaimRewards;
```

<Accordion title="Claiming Rewards Using Direct JavaScript Integration" icon="rectangle-code" iconType="sharp-solid">
  ```javascript theme={null}
  const result = await sageClient.claimReward({
    epoch: 1704067200000,                     // Sui timestamp for the epoch period
    appId: 'your-app-id',                     // Explicitly required application ID
    network: 'testnet',                       // Explicitly required network ('testnet' or 'mainnet')
    ownedUserId: 'your-owned-user-id',        // User's owned user object ID
    sharedUserId: 'your-shared-user-id'       // User's shared user object ID
  });

  if (result.ok) {
    await signAndExecuteTransaction({ transaction: result.transaction });
    console.log("Rewards claimed successfully!");
  } else {
    console.error("Error claiming rewards:", result.err);
  }
  ```
</Accordion>

## Important Notes:

* **Epoch Parameter**: A precise Sui timestamp (`epoch`) defines the reward period.
* **Required Parameters**: Include `appId`, `network`, `ownedUserId`, and `sharedUserId` to accurately claim rewards.
* **Transaction Signing**: All claims require wallet signatures and transaction execution via user wallets.
