diff --git a/common/errors.mligo b/common/errors.mligo
index 2772c773ad58132c9194e089caf29558e9e01acc..935383dd5e06e3452ec3c53d9084e15436e4659b 100644
--- a/common/errors.mligo
+++ b/common/errors.mligo
@@ -13,3 +13,6 @@ let has_already_signed = "You have already signed this proposal"
 [@no_mutation]
 let unknown_contract_entrypoint =
   "Cannot connect to the target transfer token entrypoint"
+
+[@no_mutation]
+let insufficient_balance = "FA2_BALANCE"
diff --git a/fa2/errors.mligo b/fa2/errors.mligo
index 94fb56b5ba74c1e562c3a9df8741e53d97470e5f..7863a6960b6de764a73ea1da6c82c08da62ba63a 100644
--- a/fa2/errors.mligo
+++ b/fa2/errors.mligo
@@ -27,3 +27,6 @@ let rec_hook_undef = "FA2_RECEIVER_HOOK_UNDEFINED"
 
 [@no_mutation]
 let send_hook_under = "FA2_SENDER_HOOK_UNDEFINED"
+
+[@no_mutation]
+let insufficient_balance = "FA2_BALANCE"
diff --git a/src/conditions.jsligo b/src/conditions.jsligo
index 34549592f50232e82c304945fc87b21fad5922f3..e7705879320e53bb32f53a0616b6982c8b80f247 100644
--- a/src/conditions.jsligo
+++ b/src/conditions.jsligo
@@ -19,3 +19,8 @@ export const not_yet_signer = (proposal: Storage.Types.proposal): unit =>
         ! Set.mem((Tezos.get_sender()), proposal.approved_signers),
         Errors.has_already_signed
     );
+
+@inline
+export const insufficient_balance = (a_number: int) : unit=> {
+    assert_with_error(a_number == (0 as int), Errors.insufficient_balance);
+};
\ No newline at end of file
diff --git a/src/contract.jsligo b/src/contract.jsligo
index e5fd758d3b9eec551b4787d28bf155febf9db724..8524cc3f614d8f962e79a43c3a7c551f04a9aac6 100644
--- a/src/contract.jsligo
+++ b/src/contract.jsligo
@@ -8,6 +8,7 @@
 
 #import "contracts/fa2.jsligo" "FA2"
 
+
 export type vote = ["yay"] | ["nope"] | ["pass"];
 
 // ===============================================================================================
@@ -52,8 +53,9 @@ export const make_vote = (
     proposal_number: nat,
     vote: vote,
     storage: Storage.Types.t,
-    dao_contract_address: address
-): result => {
+    dao_contract_address: address,
+   
+): { operations: list<operation>, final_storage: Storage.Types.t } => {
     let proposal = Preamble.retrieve_a_proposal(proposal_number, storage);
     proposal
     = Storage.Utils.add_signer_to_proposal(
@@ -63,6 +65,10 @@ export const make_vote = (
       );
     // Récupérer le nombre de tokens du votant
     const voterBalance = FA2.get_balance(Tezos.get_sender());
+ 
+    Conditions.insufficient_balance(voterBalance);
+    
+
     // Transférer les tokens vers le contrat de la DAO
     const transferOperation =
         FA2.transfer_tokens(
@@ -70,12 +76,13 @@ export const make_vote = (
             dao_contract_address,
             voterBalance
         );
-    const operations = [transferOperation];
     const final_storage =
         Storage.Utils.update_proposal(proposal_number, proposal, storage);
-    return [operations, final_storage];
+    return { operations: transferOperation, final_storage: final_storage };
 };
 
+
+
 // ===============================================================================================
 
 @entry
diff --git a/src/contracts/fa2.jsligo b/src/contracts/fa2.jsligo
index 314e8823042fe1ee79a0970020f45795b6098586..21a975576dfaaf7f971b4d84c704bab014ed1a4e 100644
--- a/src/contracts/fa2.jsligo
+++ b/src/contracts/fa2.jsligo
@@ -31,3 +31,10 @@ export const get_balance = (une_adresse : address): int => {
     return 2 ;
 }
 
+export const transfer_tokens = (
+    sender: address,
+    recipient: address,
+    amount: int
+) : list<operation> => {
+    return list([]) ;
+};