diff --git a/src/LunarRewardsServiceProvider.php b/src/LunarRewardsServiceProvider.php
index 506994e..b8d52aa 100644
--- a/src/LunarRewardsServiceProvider.php
+++ b/src/LunarRewardsServiceProvider.php
@@ -6,6 +6,7 @@
 use Illuminate\Support\Facades\Config;
 use Illuminate\Support\Facades\Event;
 use Illuminate\Support\ServiceProvider;
+use Lunar\Models\Currency;
 
 class LunarRewardsServiceProvider extends ServiceProvider
 {
@@ -37,14 +38,36 @@ public function register(): void
             fn () => new LunarRewards,
         );
 
+        // Register the reward points currency.
+        $this->app->singleton(
+            'lunar-rewards-currency',
+            fn () => new Currency([
+                'code' => Config::get('wallet.default_currency', 'RP'),
+                'name' => 'Reward Points',
+                'exchange_rate' => 1,
+                'decimal_places' => 0,
+                'enabled' => true,
+            ]),
+        );
+
         // Register the reward points calculator.
         $this->app->singleton(
             \Dystcz\LunarRewards\Domain\Rewards\Contracts\RewardPointsCalculator::class,
             fn () => new (Config::get(
-                'lunar-rewards.reward_point_calculator',
+                'lunar-rewards.rewards.reward_point_calculator',
                 \Dystcz\LunarRewards\Domain\Rewards\Calculators\RewardPointsCalculator::class,
             )),
         );
+
+        // Register coupon code generator.
+        $this->app->singleton(
+            \Dystcz\LunarRewards\Domain\Discounts\Contracts\CouponCodeGenerator::class,
+            fn () => new (Config::get(
+                'lunar-rewards.rewards.coupon_code_generator',
+                \Dystcz\LunarRewards\Domain\Discounts\Generators\CouponCodeGenerator::class,
+            )),
+        );
+
     }
 
     /**