diff --git a/lib/gem_common/src/errors.rs b/lib/gem_common/src/errors.rs
index 2e5e93346..f6d22381c 100644
--- a/lib/gem_common/src/errors.rs
+++ b/lib/gem_common/src/errors.rs
@@ -107,7 +107,9 @@ pub enum ErrorCode {
     #[msg("max rarity points exceeded")]
     TooManyRarityPointsStaked, //0x17a2
 
-    Reserved51,
+    #[msg("unstaking fee lamports must be either 0 or greater than 890880")]
+    InvalidUnstakingFee, //0x17a3
+
     Reserved52,
     Reserved53,
     Reserved54,
diff --git a/programs/gem_farm/src/instructions/init_farm.rs b/programs/gem_farm/src/instructions/init_farm.rs
index 14104a02a..0ef1bd349 100644
--- a/programs/gem_farm/src/instructions/init_farm.rs
+++ b/programs/gem_farm/src/instructions/init_farm.rs
@@ -110,6 +110,11 @@ pub fn handler(
         return Err(error!(ErrorCode::InvalidParameter));
     }
 
+    //ensure unstaking fee does not violate solana v1.9.5 rent requirements
+    if farm_config.unstaking_fee_lamp > 0 && farm_config.unstaking_fee_lamp < 890880 {
+        return Err(error!(ErrorCode::InvalidUnstakingFee));
+    }
+
     //record new farm details
     let farm = &mut ctx.accounts.farm;
 
diff --git a/tests/gem-farm/rate-agnostic/gem-farm.misc.test.ts b/tests/gem-farm/rate-agnostic/gem-farm.misc.test.ts
index 7887236ac..063df3f3f 100644
--- a/tests/gem-farm/rate-agnostic/gem-farm.misc.test.ts
+++ b/tests/gem-farm/rate-agnostic/gem-farm.misc.test.ts
@@ -31,6 +31,19 @@ describe('misc', () => {
     await gf.prepAccounts(45000);
   });
 
+  it('FAILS to init farm with invalid unstaking fee', async () => {
+    await expect(
+      gf.callInitFarm(
+        {
+          minStakingPeriodSec: new BN(0),
+          cooldownPeriodSec: new BN(0),
+          unstakingFeeLamp: new BN(100),
+        },
+        RewardType.Fixed
+      )
+    ).to.be.rejectedWith('InvalidUnstakingFee');
+  });
+
   it('inits the farm', async () => {
     await gf.callInitFarm(defaultFarmConfig, RewardType.Fixed);