title: Why I cannot send ftm with this simple code
body: <pre><code>Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim privatekey = System.IO.File.ReadAllText(&quot;privatekey.txt&quot;)
      'Dim publickey = &quot;0x898568c58466957bedaE0e2A2457beb158a150de&quot; ''
      Dim destination = &quot;0x7fD0Ec4d9908A712852d32d110839Fc1A9Ce55d5&quot;
      Dim rpcURL = &quot;https://rpc.ftm.tools&quot; ' where should I put this
      Dim chainID = 250 'Where should I put this?
  
      Dim account = New Nethereum.Web3.Accounts.Account(privatekey, chainID)
      Dim web3 = New Nethereum.Web3.Web3(account, rpcURL)
      Dim amount = New Nethereum.Hex.HexTypes.HexBigInteger(10)
      Await web3.TransactionManager.SendTransactionAsync(account.Address, destination, amount)
  End Sub
  </code></pre>
  <p>I am learning to use nethereum.</p>
  <p>I make this simple code. Simple. I want to send 10 wei of fantom to another address. Simple right.</p>
  <p>I got this error</p>
  <p><a href="https://i.stack.imgur.com/8FawG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8FawG.png" alt="enter image description here" /></a></p>
  <p>It's very weird.</p>
  <p>Index was outside the bound of the array? What bound?</p>
  <p>Anyway, this is such a very simple program. I wonder where do I went wrong with this?</p>
  <p>This is the right way to do it right?</p>
  <p>Other minor related question while we're at it (should I ask this separately). Why the hell chainID is the property of account but rpcURL is the property of web3. I thought fantom chain, that uses <a href="https://rpc.ftm.tools" rel="nofollow noreferrer">https://rpc.ftm.tools</a> uses chainID 250. So if we know the chain id, we kind of know the rpc url and if we know the rpc url we sort of know that it'll only work for one chain ID anyway.</p>
  <p>How do I fix my code? What's wrong? And if anyone can explain the chainID rpcURL dilemma it'll be great.</p>
  <p>I look further where the error happens. It seems that the error happen when nethereum tries to compute gas fees.</p>
  <p>at</p>
  <pre><code>Nethereum.RPC.Fee1559Suggestions.TimePreferenceFeeSuggestionStrategy.SuggestFees(FeeHistoryResult feeHistory, BigInteger tip)
     at Nethereum.RPC.Fee1559Suggestions.TimePreferenceFeeSuggestionStrategy.&lt;SuggestFeesAsync&gt;d__29.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
     at Nethereum.RPC.Fee1559Suggestions.TimePreferenceFeeSuggestionStrategy.&lt;SuggestFeeAsync&gt;d__27.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
     at Nethereum.RPC.TransactionManagers.TransactionManagerBase.&lt;SetTransactionFeesOrPricingAsync&gt;d__37.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at Nethereum.Web3.Accounts.AccountSignerTransactionManager.&lt;SignTransactionRetrievingNextNonceAsync&gt;d__14.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
     at Nethereum.Web3.Accounts.AccountSignerTransactionManager.&lt;SignAndSendTransactionAsync&gt;d__16.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
     at Nethereum.RPC.TransactionReceipts.TransactionReceiptPollingService.&lt;SendRequestAndWaitForReceiptAsync&gt;d__5.MoveNext()
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
     at testapp.Form1.VB$StateMachine_9_doSomething.MoveNext() in C:\Users\teguh\Dropbox\vb.net\testapp\testapp\Form1.vb:line 21
     at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
     at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
     at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
     at testapp.Form1.VB$StateMachine_8_Button1_Click.MoveNext() in C:\Users\teguh\Dropbox\vb.net\testapp\testapp\Form1.vb:line 3
  </code></pre>
  <p>I plan to do this manually anyway. But how exactly I should do that?</p>
  <p>I changed the code to</p>
  <pre><code>  Dim privatekey = System.IO.File.ReadAllText(&quot;privatekey.txt&quot;)
      'Dim publickey = &quot;0x898568c58466957bedaE0e2A2457beb158a150de&quot; ''
      Dim destination = &quot;0x7fD0Ec4d9908A712852d32d110839Fc1A9Ce55d5&quot;
      Dim rpcURL = &quot;https://rpc.ftm.tools&quot; ' where should I put this
      Dim chainID = 250 'Where should I put this?
  
      Dim account = New Nethereum.Web3.Accounts.Account(privatekey, chainID)
  
      Dim web3Obj = New Nethereum.Web3.Web3(account, rpcURL)
      'Dim amount = Nethereum.Web3.Web3.Convert.ToWei(0.1)
      Dim balance = Await web3Obj.Eth.GetBalance.SendRequestAsync(account.Address)
      Dim EtherBalance = Nethereum.Web3.Web3.Convert.FromWei(balance.Value) 'I got the correct value here
  
  
      Dim result = Await web3Obj.Eth.GetEtherTransferService.TransferEtherAndWaitForReceiptAsync(destination, 1D, 1)
  </code></pre>
  <p>Basically, I am being stingy and say that the gas price should be 1 wei. I &quot;deservedly&quot; got this message</p>
  <p>transaction underpriced</p>
  <p>I think I should just code the gas price my self. How do I do so? What's the minimum gas price for fantom?</p>