fenine_getSigners
curl --request GET \
--url https://api.example.com/fenine_getSignersimport requests
url = "https://api.example.com/fenine_getSigners"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/fenine_getSigners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/fenine_getSigners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/fenine_getSigners"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/fenine_getSigners")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/fenine_getSigners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"result": [
{}
]
}fenine_* Methods
fenine_getSigners
Get list of authorized signers (bootstrap nodes)
GET
fenine_getSigners
fenine_getSigners
curl --request GET \
--url https://api.example.com/fenine_getSignersimport requests
url = "https://api.example.com/fenine_getSigners"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/fenine_getSigners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/fenine_getSigners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/fenine_getSigners"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/fenine_getSigners")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/fenine_getSigners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"result": [
{}
]
}Overview
Retrieves the list of authorized signers (bootstrap nodes) at a given block. These are the addresses authorized to produce blocks in the Fenine consensus.Parameters
string
default:"latest"
Block number in hex or “latest”
Response
array
Array of signer addresses (e.g.,
["0x1234...", "0x5678..."])Examples
curl -X POST https://rpc.fene.app \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "fenine_getSigners",
"params": ["latest"],
"id": 1
}'
const Web3 = require('web3');
const web3 = new Web3('https://rpc.fene.app');
web3.extend({
methods: [{
name: 'getSigners',
call: 'fenine_getSigners',
params: 1
}]
});
const signers = await web3.getSigners('latest');
console.log('Current signers:', signers);
console.log('Total signers:', signers.length);
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://rpc.fene.app'))
result = w3.provider.make_request(
'fenine_getSigners',
['latest']
)
signers = result['result']
print(f'Signers: {signers}')
print(f'Count: {len(signers)}')
Response Example
{
"jsonrpc": "2.0",
"id": 1,
"result": [
"0x1111111111111111111111111111111111111111",
"0x2222222222222222222222222222222222222222",
"0x3333333333333333333333333333333333333333"
]
}
Use Cases
Monitor Bootstrap Nodes
Monitor Bootstrap Nodes
Track which bootstrap nodes are authorized to produce blocks.
Verify Network Security
Verify Network Security
Ensure the network has sufficient authorized signers for security.
Build Node Monitoring
Build Node Monitoring
Create dashboards to monitor signer activity and uptime.
Notes
Bootstrap nodes (signers) are different from validators. Signers authorize blocks at the consensus layer, while validators stake and earn rewards at the contract layer.
Related Methods
fenine_getSnapshot
Get full snapshot with signer activity
getActiveValidators
Get active validators from contract