diff --git a/ethchain/dagger.go b/ethchain/dagger.go
index 4dda21ff5d27eca2680842227b02fa1a28ecbafd..dccd2ff5bacb8fca118a0816ff963c7906ce7733 100644
--- a/ethchain/dagger.go
+++ b/ethchain/dagger.go
@@ -16,10 +16,16 @@ var powlogger = ethlog.NewLogger("POW")
 type PoW interface {
 	Search(block *Block, reactChan chan ethutil.React) []byte
 	Verify(hash []byte, diff *big.Int, nonce []byte) bool
+	GetHashrate() int64
 }
 
 type EasyPow struct {
-	hash *big.Int
+	hash     *big.Int
+	HashRate int64
+}
+
+func (pow *EasyPow) GetHashrate() int64 {
+	return pow.HashRate
 }
 
 func (pow *EasyPow) Search(block *Block, reactChan chan ethutil.React) []byte {
@@ -39,7 +45,8 @@ func (pow *EasyPow) Search(block *Block, reactChan chan ethutil.React) []byte {
 			if i%1234567 == 0 {
 				elapsed := time.Now().UnixNano() - start
 				hashes := ((float64(1e9) / float64(elapsed)) * float64(i)) / 1000
-				powlogger.Infoln("Hashing @", int64(hashes), "khash")
+				pow.HashRate = int64(hashes)
+				powlogger.Infoln("Hashing @", int64(pow.HashRate), "khash")
 			}
 
 			sha := ethcrypto.Sha3Bin(big.NewInt(r.Int63()).Bytes())
diff --git a/ethminer/miner.go b/ethminer/miner.go
index 71d4b2428ac18f531578f13ba841a77e3dbbf887..f45615b62ce3e225227d8b4a8265ed946512913d 100644
--- a/ethminer/miner.go
+++ b/ethminer/miner.go
@@ -24,6 +24,10 @@ type Miner struct {
 	quitChan    chan bool
 }
 
+func (self Miner) GetPow() *ethchain.PoW {
+	return &self.pow
+}
+
 func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) Miner {
 	reactChan := make(chan ethutil.React, 1)   // This is the channel that receives 'updates' when ever a new transaction or block comes in
 	powChan := make(chan []byte, 1)            // This is the channel that receives valid sha hases for a given block