diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go
index dd21a31b1db31695578ab00598180e4e190f7ae9..bc8b468310653f678f2992d99f66de8bb54c62a7 100644
--- a/ethchain/state_manager.go
+++ b/ethchain/state_manager.go
@@ -20,6 +20,9 @@ type EthManager interface {
 	TxPool() *TxPool
 	Broadcast(msgType ethwire.MsgType, data []interface{})
 	Reactor() *ethutil.ReactorEngine
+	PeerCount() int
+	IsMining() bool
+	IsListening() bool
 }
 
 type StateManager struct {
diff --git a/ethereum.go b/ethereum.go
index 92c4e4ba17070c6cefa12f4f1b86fce8fb3028bb..94e338c5601d517e53babb13d22363aaaf62b5f6 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -65,6 +65,10 @@ type Ethereum struct {
 	// Specifies the desired amount of maximum peers
 	MaxPeers int
 
+	Mining bool
+
+	listening bool
+
 	reactor *ethutil.ReactorEngine
 
 	RpcServer *ethrpc.JsonRpcServer
@@ -128,6 +132,15 @@ func (s *Ethereum) TxPool() *ethchain.TxPool {
 func (s *Ethereum) ServerCaps() Caps {
 	return s.serverCaps
 }
+func (s *Ethereum) IsMining() bool {
+	return s.Mining
+}
+func (s *Ethereum) PeerCount() int {
+	return s.peers.Len()
+}
+func (s *Ethereum) IsListening() bool {
+	return s.listening
+}
 
 func (s *Ethereum) AddPeer(conn net.Conn) {
 	peer := NewPeer(conn, s, true)
@@ -305,7 +318,9 @@ func (s *Ethereum) Start(seed bool) {
 	ln, err := net.Listen("tcp", ":"+s.Port)
 	if err != nil {
 		log.Println("Connection listening disabled. Acting as client")
+		s.listening = false
 	} else {
+		s.listening = true
 		// Starting accepting connections
 		ethutil.Config.Log.Infoln("Ready and accepting connections")
 		// Start the peer handler
diff --git a/ethpub/pub.go b/ethpub/pub.go
index 4ced632f5c2875218f990d13790bdc21042a1755..4d153636890bbd1e4ef75d4b89db0052db2a5166 100644
--- a/ethpub/pub.go
+++ b/ethpub/pub.go
@@ -1,6 +1,7 @@
 package ethpub
 
 import (
+	"encoding/hex"
 	"github.com/ethereum/eth-go/ethchain"
 	"github.com/ethereum/eth-go/ethutil"
 )
@@ -56,11 +57,31 @@ func (lib *PEthereum) GetStateObject(address string) *PStateObject {
 	return NewPStateObject(nil)
 }
 
+func (lib *PEthereum) GetPeerCount() int {
+	return lib.manager.PeerCount()
+}
+
+func (lib *PEthereum) GetIsMining() bool {
+	return lib.manager.IsMining()
+}
+
+func (lib *PEthereum) GetIsListening() bool {
+	return lib.manager.IsListening()
+}
+
+func (lib *PEthereum) GetCoinBase() string {
+	data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
+	keyRing := ethutil.NewValueFromBytes(data)
+	key := keyRing.Get(0).Bytes()
+
+	return lib.SecretToAddress(hex.EncodeToString(key))
+}
+
 func (lib *PEthereum) GetStorage(address, storageAddress string) string {
 	return lib.GetStateObject(address).GetStorage(storageAddress)
 }
 
-func (lib *PEthereum) GetTxCount(address string) int {
+func (lib *PEthereum) GetTxCountAt(address string) int {
 	return lib.GetStateObject(address).Nonce()
 }