diff --git a/rpc/api.go b/rpc/api.go
index ad48b86078121b4a240ae3a2babea3b09b922641..339de44328336bb52c8ad94089330f92da7d714a 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -126,7 +126,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 			return err
 		}
 
-		block := NewBlockRes(api.xeth().EthBlockByHash(args.BlockHash))
+		block := NewBlockRes(api.xeth().EthBlockByHash(args.BlockHash.Hex()))
 		*reply = common.ToHex(big.NewInt(int64(len(block.Transactions))).Bytes())
 	case "eth_getBlockTransactionCountByNumber":
 		args := new(GetBlockByNumberArgs)
@@ -142,7 +142,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 			return err
 		}
 
-		block := api.xeth().EthBlockByHash(args.BlockHash)
+		block := api.xeth().EthBlockByHash(args.BlockHash.Hex())
 		br := NewBlockRes(block)
 		*reply = common.ToHex(big.NewInt(int64(len(br.Uncles))).Bytes())
 	case "eth_getUncleCountByBlockNumber":
@@ -191,7 +191,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 			return err
 		}
 
-		block := api.xeth().EthBlockByHash(args.BlockHash)
+		block := api.xeth().EthBlockByHash(args.BlockHash.Hex())
 		br := NewBlockRes(block)
 		br.fullTx = args.IncludeTxs
 
@@ -222,7 +222,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 			return err
 		}
 
-		block := api.xeth().EthBlockByHash(args.Hash)
+		block := api.xeth().EthBlockByHash(args.Hash.Hex())
 		br := NewBlockRes(block)
 		br.fullTx = true
 
@@ -250,14 +250,14 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 			return err
 		}
 
-		br := NewBlockRes(api.xeth().EthBlockByHash(args.Hash))
+		br := NewBlockRes(api.xeth().EthBlockByHash(args.Hash.Hex()))
 
 		if args.Index > int64(len(br.Uncles)) || args.Index < 0 {
 			return NewValidationError("Index", "does not exist")
 		}
 
 		uhash := br.Uncles[args.Index].Hex()
-		uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
+		uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash))
 
 		*reply = uncle
 	case "eth_getUncleByBlockNumberAndIndex":
@@ -275,7 +275,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
 		}
 
 		uhash := v.Uncles[args.Index].Hex()
-		uncle := NewBlockRes(api.xeth().EthBlockByHexstring(uhash))
+		uncle := NewBlockRes(api.xeth().EthBlockByHash(uhash))
 
 		*reply = uncle
 	case "eth_getCompilers":
diff --git a/xeth/xeth.go b/xeth/xeth.go
index 92e73c7d5c0d576a618c07fc58cfeffc298e0585..bf30fc2fcc0c5bd855e997a2a69ea872d2a62f4a 100644
--- a/xeth/xeth.go
+++ b/xeth/xeth.go
@@ -160,16 +160,13 @@ func (self *XEth) BlockByHash(strHash string) *Block {
 	return NewBlock(block)
 }
 
-func (self *XEth) EthBlockByHash(hash common.Hash) *types.Block {
+func (self *XEth) EthBlockByHash(strHash string) *types.Block {
+	hash := common.HexToHash(strHash)
 	block := self.backend.ChainManager().GetBlock(hash)
 
 	return block
 }
 
-func (self *XEth) EthBlockByHexstring(strHash string) *types.Block {
-	return self.EthBlockByHash(common.HexToHash(strHash))
-}
-
 func (self *XEth) EthTransactionByHash(hash string) *types.Transaction {
 	data, _ := self.backend.ExtraDb().Get(common.FromHex(hash))
 	if len(data) != 0 {