diff --git a/bfa_client/src/bfa/node.go b/bfa_client/src/bfa/node.go
index f04700caceaa2e1889e24d941ec7052363636a40..2a9fbd8df3b0588d46dcbebb3595b198b13acb89 100644
--- a/bfa_client/src/bfa/node.go
+++ b/bfa_client/src/bfa/node.go
@@ -3,10 +3,12 @@ package bfa
 import (
 	. "../clique"
 	. "../util"
+	"context"
 	"fmt"
 	"github.com/ethereum/go-ethereum/common"
 	"github.com/ethereum/go-ethereum/consensus/clique"
 	"github.com/ethereum/go-ethereum/core/types"
+	"github.com/ethereum/go-ethereum/ethclient"
 	"github.com/ethereum/go-ethereum/p2p"
 	"github.com/ethereum/go-ethereum/rpc"
 	"math/big"
@@ -16,6 +18,26 @@ import (
 
 type Node rpc.Client
 
+type Block struct {
+	ParentHash      common.Hash         `json:"parentHash"`
+	Coinbase        common.Address      `json:"miner"`
+	Root            common.Hash         `json:"stateRoot"`
+	TxHash          common.Hash         `json:"transactionsRoot"`
+	ReceiptHash     common.Hash         `json:"receiptsRoot"`
+	Bloom           types.Bloom         `json:"logsBloom"`
+	Difficulty      *big.Int            `json:"difficulty"`
+	Number          *big.Int            `json:"number"`
+	GasLimit        uint64              `json:"gasLimit"`
+	GasUsed         uint64              `json:"gasUsed"`
+	Time            *big.Int            `json:"timestamp"`
+	Extra           []byte              `json:"extraData"`
+	MixDigest       common.Hash         `json:"mixHash"`
+	Nonce           types.BlockNonce    `json:"nonce"`
+	Transactions    []types.Transaction `json:"transactions"`
+	TotalDifficulty *big.Int            `json:"totalDifficulty"`
+	Signer          string              `json:"signer"`
+}
+
 type Snapshot struct {
 	Number  uint64                          `json:"number"`  // Block number where the snapshot was created
 	Hash    common.Hash                     `json:"hash"`    // Block hash where the snapshot was created
@@ -124,7 +146,7 @@ func (node *Node) Coinbase() (coinbase string, err error) {
 	return
 }
 
-func (node *Node) BlockByNumber(blockNumber int64) types.Header {
+func (node *Node) HeaderByNumber(blockNumber int64) types.Header {
 	var (
 		number string
 		resp   types.Header
@@ -134,12 +156,39 @@ func (node *Node) BlockByNumber(blockNumber int64) types.Header {
 	} else {
 		number = fmt.Sprintf("0x%x", blockNumber)
 	}
-	node.Call(&resp, "eth_getBlockByNumber", number, false)
+	node.Call(&resp, "eth_getBlockByNumber", number, true)
 	return resp
 }
 
+func (node *Node) BlockByNumber(blockNumber int64) (block Block) {
+	ethClient := ethclient.NewClient((*rpc.Client)(node))
+	b, err := ethClient.BlockByNumber(context.Background(), nil)
+	h := b.Header()
+	Check(err)
+	block.ParentHash = h.ParentHash
+	block.Coinbase = h.Coinbase
+	block.Root = h.Root
+	block.TxHash = h.TxHash
+	block.ReceiptHash = h.ReceiptHash
+	block.Bloom = h.Bloom
+	block.Difficulty = h.Difficulty
+	block.Number = h.Number
+	block.GasLimit = h.GasLimit
+	block.GasUsed = h.GasUsed
+	block.Time = h.Time
+	block.Extra = h.Extra
+	block.MixDigest = h.MixDigest
+	block.Nonce = h.Nonce
+	for _, transaction := range b.Transactions() {
+		block.Transactions = append(block.Transactions, *transaction)
+	}
+	block.Signer, err = GetSigner(h)
+	block.TotalDifficulty = b.DeprecatedTd()
+	return block
+}
+
 func (node *Node) BlockSigner(blockNumber int64) (signer string) {
-	header := node.BlockByNumber(blockNumber)
+	header := node.HeaderByNumber(blockNumber)
 	signer, err := GetSigner(&header)
 	Check(err)
 	return
@@ -264,7 +313,7 @@ func (node *Node) SealersStatus(blockNumber int64) (status map[string]*SealerSta
 		}
 	}
 	notSeen := int64(len(status))
-	block := node.BlockByNumber(blockNumber)
+	block := node.HeaderByNumber(blockNumber)
 	blockNumber = block.Number.Int64()
 	until := Max(1, blockNumber-5*notSeen)
 	for notSeen > 0 {
@@ -279,7 +328,7 @@ func (node *Node) SealersStatus(blockNumber int64) (status map[string]*SealerSta
 			break
 		}
 		blockNumber--
-		block = node.BlockByNumber(blockNumber)
+		block = node.HeaderByNumber(blockNumber)
 	}
 	return status
 }
diff --git a/bfa_client/src/client/bfa_client.go b/bfa_client/src/client/bfa_client.go
index 86890ca75e8ee12ab87c6115fec4dde31715e6fe..f4e323462a72572e5a0a8a2ebac18c9c5761a747 100644
--- a/bfa_client/src/client/bfa_client.go
+++ b/bfa_client/src/client/bfa_client.go
@@ -395,6 +395,21 @@ func status() {
 	util.PrintJson(nodeStatus)
 }
 
+func block() {
+	var (
+		blockNumber int64
+	)
+	description = "Presenta la lista de selladores. Opcionalmente indica el último bloque sellado por cada uno."
+	setFlags()
+	flags.Int64Var(&blockNumber, "block-number", latest, "Número del bloque en el cual se quiere conocer la lista de selladores (-1 para el último)")
+	parseFlags()
+	url = updateURL(url)
+	node, err := bfa.Dial(url)
+	util.Check(err)
+	defer node.Close()
+	util.PrintJson(node.BlockByNumber(blockNumber))
+}
+
 func main() {
 	var (
 		commands = map[string]func(){
@@ -403,17 +418,19 @@ func main() {
 			"vote":      propose,
 			"autovote":  autovote,
 			"status":    status,
+			"block":     block,
 		}
 		validCommands []string
 	)
 	for command := range commands {
 		validCommands = append(validCommands, command)
 	}
-	defer func() {
-		if err := recover(); err != nil {
-			log.Printf("Error: %s", err)
-		}
-	}()
+	sort.Strings(validCommands)
+	//defer func() {
+	//	if err := recover(); err != nil {
+	//		log.Printf("Error: %s", err)
+	//	}
+	//}()
 	if len(os.Args) > 1 {
 		command = os.Args[1]
 	}