Reward Kit is still in early alpha, and may contain bugs or unexpected behavior.
The Boost V2 Docs are under active development and will be subject to changes.
Show properties
Show properties
Current RewardKitConfig configuration for displaying Boosts
Current theme CSS variables
Current modal visibility state
Updates RewardKit theme variables
Opens the RewardKit modal
Closes the RewardKit modal
Toggles modal visibility
Updates RewardKit configuration
useRewardKit TSDoc
See in-depth technical documentation
Basic Usage
Here’s how to use the hook in your application:Copy
Ask AI
import { RewardKitProvider, useRewardKit } from '@boostxyz/reward-kit-react';
// Wrap your app with the provider
function App() {
return (
<RewardKitProvider
theme={{ primary: "#4F46E5" }}
config={{
testnetsEnabled: true,
creatorAddress: "0x123..."
}}
>
<YourComponents />
</RewardKitProvider>
);
}
// Use the context in your components
function RewardsButton() {
const { openModal, configure } = useRewardKit();
const handleClick = () => {
configure({ chainId: 1 }); // Update configuration
openModal(); // Open the modal
};
return <button onClick={handleClick}>View Rewards</button>;
}
Theme Customization
Example showing theme customization:Copy
Ask AI
import { RewardKitProvider, useRewardKit } from '@boostxyz/reward-kit-react';
function ThemedRewards() {
const customTheme = {
primary: "#4F46E5",
card: "#FFFFFF",
accent: "#1F2937",
secondary: "#E5E7EB"
};
return (
<RewardKitProvider theme={customTheme}>
<ThemeController />
</RewardKitProvider>
);
}
function ThemeController() {
const { changeTheme } = useRewardKit();
const toggleDarkMode = () => {
changeTheme({
card: "#1F2937",
accent: "#FFFFFF",
primary: "#374151"
});
};
return (
<button onClick={toggleDarkMode}>
Switch to Dark Mode
</button>
);
}
Configuration Management
Example demonstrating dynamic configuration:Copy
Ask AI
import { RewardKitProvider, useRewardKit } from '@boostxyz/reward-kit-react';
function ConfigurableRewards() {
const initialConfig = {
testnetsEnabled: process.env.NODE_ENV === 'development',
creatorAddress: "0x123..."
};
return (
<RewardKitProvider config={initialConfig}>
<RewardsFilter />
</RewardKitProvider>
);
}
function RewardsFilter() {
const { configure, openModal } = useRewardKit();
const filterByChain = (chainId: number) => {
configure({
chainId,
targetContract: "0x456..."
});
openModal();
};
return (
<div>
<button onClick={() => filterByChain(1)}>
Ethereum Rewards
</button>
<button onClick={() => filterByChain(137)}>
Polygon Rewards
</button>
</div>
);
}
Modal State Management
Example showing modal state control:Copy
Ask AI
import { RewardKitProvider, useRewardKit } from '@boostxyz/reward-kit-react';
function ModalController() {
const {
isModalOpen,
openModal,
closeModal,
toggleModal
} = useRewardKit();
return (
<div>
<button onClick={openModal}>
Open Rewards
</button>
<button onClick={toggleModal}>
{isModalOpen ? 'Close' : 'Open'} Rewards
</button>
{isModalOpen && (
<button onClick={closeModal}>
Close Modal
</button>
)}
<div>Modal is {isModalOpen ? 'open' : 'closed'}</div>
</div>
);
}