diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java
index 7f5b9b99926a1835455fcae73f5f97efe8dd6a03..f59f74a443b129812caa580ac3fa55d7930244d4 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/bma/TransactionRemoteServiceImpl.java
@@ -67,6 +67,7 @@ public class TransactionRemoteServiceImpl extends BaseRemoteServiceImpl implemen
 
 
 	private CryptoService cryptoService;
+	private BlockchainRemoteService blockchainService;
 
 	public TransactionRemoteServiceImpl() {
 		super();
@@ -76,6 +77,7 @@ public class TransactionRemoteServiceImpl extends BaseRemoteServiceImpl implemen
 	public void afterPropertiesSet() {
 		super.afterPropertiesSet();
         cryptoService = ServiceLocator.instance().getCryptoService();
+		blockchainService = ServiceLocator.instance().getBlockchainRemoteService();
 	}
 
 
@@ -106,14 +108,15 @@ public class TransactionRemoteServiceImpl extends BaseRemoteServiceImpl implemen
 		Preconditions.checkArgument(peer != null || wallet.getCurrency() != null);
 
 		peer = peer != null ? peer : peerService.getActivePeerByCurrency(wallet.getCurrency());
+
 		// Get current block
-		BlockchainBlock currentBlock = httpService.executeRequest(peer, BlockchainRemoteServiceImpl.URL_BLOCK_CURRENT, BlockchainBlock.class);
+		BlockchainBlock currentBlock = blockchainService.getCurrentBlock(peer, true);
 
 		// http post /tx/process
 		HttpPost httpPost = new HttpPost(httpService.getPath(peer, URL_TX_PROCESS));
 
 		// compute transaction
-		String transaction = getSignedTransaction(peer, wallet, currentBlock,mapPubkeyAmount , 0,
+		String transaction = getSignedTransaction(peer, wallet, currentBlock, mapPubkeyAmount , 0,
 				comment);
 
 		if (log.isDebugEnabled()) {
diff --git a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java
index 0b465aa0093939a1682d2a8b0eb27c7660df3e31..361e782f5202ff664b8d4fc6a7c729f707a4811d 100644
--- a/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java
+++ b/duniter4j-core-client/src/test/java/org/duniter/core/client/service/bma/TransactionRemoteServiceTest.java
@@ -28,6 +28,8 @@ import com.google.common.collect.Maps;
 import lombok.extern.slf4j.Slf4j;
 import org.duniter.core.client.TestResource;
 import org.duniter.core.client.config.Configuration;
+import org.duniter.core.client.model.bma.BlockchainBlock;
+import org.duniter.core.client.model.bma.BlockchainBlocks;
 import org.duniter.core.client.model.bma.TxSource;
 import org.duniter.core.client.model.local.Peer;
 import org.duniter.core.client.model.local.Wallet;
@@ -48,6 +50,8 @@ public class TransactionRemoteServiceTest {
 	public static final TestResource resource = TestResource.create();
 	
 	private TransactionRemoteService service;
+
+	private int unitbase;
 	
 	@Before
 	public void setUp() {
@@ -57,6 +61,12 @@ public class TransactionRemoteServiceTest {
 		Assume.assumeTrue(
 				"Invalid currencies in test fixtures",
 				Objects.equals(resource.getFixtures().getDefaultCurrency(), resource.getFixtures().getCurrency()));
+
+		// Get the current unit base
+		 BlockchainBlock currentBlock = ServiceLocator.instance().getBlockchainRemoteService()
+			.getCurrentBlock(resource.getFixtures().getDefaultCurrency());
+		 Assume.assumeNotNull(currentBlock);
+		this.unitbase = currentBlock.getUnitbase();
 	}
 
 	@Test
@@ -64,12 +74,12 @@ public class TransactionRemoteServiceTest {
 
 		try {
 			service.transfer(
-					createTestWallet(),
-					resource.getFixtures().getOtherUserPublicKey(0),
-					1,
-					"my comments" + System.currentTimeMillis());
+				createTestWallet(),
+				resource.getFixtures().getOtherUserPublicKey(0),
+				BlockchainBlocks.powBase(1, unitbase),
+				"Unit test Duniter4j at " + System.currentTimeMillis());
 		} catch (InsufficientCreditException e) {
-			// OK continue
+			Assume.assumeNoException(String.format("No credit on the test wallet '%s'", resource.getFixtures().getUserPublicKey().substring(0,8)), e);
 		}
 	}
 
@@ -77,17 +87,17 @@ public class TransactionRemoteServiceTest {
 	public void transferMulti() throws Exception {
 
 		Map<String, Long> destPubkeyAmount = ImmutableMap.<String, Long>builder()
-			.put(resource.getFixtures().getOtherUserPublicKey(0), 1l)
-			.put(resource.getFixtures().getOtherUserPublicKey(1), 2l)
+			.put(resource.getFixtures().getOtherUserPublicKey(0), BlockchainBlocks.powBase(1, unitbase))
+			.put(resource.getFixtures().getOtherUserPublicKey(1), BlockchainBlocks.powBase(2, unitbase))
 			.build();
 
 		try {
 			service.transfer(
 				createTestWallet(),
 				destPubkeyAmount,
-				"my comments" + System.currentTimeMillis());
+				"Unit test Duniter4j at " + System.currentTimeMillis());
 		} catch (InsufficientCreditException e) {
-			// OK continue
+			Assume.assumeNoException(String.format("No credit on the test wallet '%s'", resource.getFixtures().getUserPublicKey().substring(0,8)), e);
 		}
 	}