--- title: clique Namespace description: Documentation for the JSON-RPC API "clique" namespace --- The `clique` API provides access to the state of the clique consensus engine. This API can be used to manage signer votes and to check the health of a private network. ## clique_getSnapshot {#clique-getsnapshot} Retrieves a snapshot of all clique state at a given block. | Client | Method invocation | | :------ | ----------------------------------------------------------- | | Console | `clique.getSnapshot(blockNumber)` | | RPC | `{"method": "clique_getSnapshot", "params": [blockNumber]}` | **Example:** ```js > clique.getSnapshot(5463755) { hash: "0x018194fc50ca62d973e2f85cffef1e6811278ffd2040a4460537f8dbec3d5efc", number: 5463755, recents: { 5463752: "0x42eb768f2244c8811c63729a21a3569731535f06", 5463753: "0x6635f83421bf059cd8111f180f0727128685bae4", 5463754: "0x7ffc57839b00206d1ad20c69a1981b489f772031", 5463755: "0xb279182d99e65703f0076e4812653aab85fca0f0" }, signers: { 0x42eb768f2244c8811c63729a21a3569731535f06: {}, 0x6635f83421bf059cd8111f180f0727128685bae4: {}, 0x7ffc57839b00206d1ad20c69a1981b489f772031: {}, 0xb279182d99e65703f0076e4812653aab85fca0f0: {}, 0xd6ae8250b8348c94847280928c79fb3b63ca453e: {}, 0xda35dee8eddeaa556e4c26268463e26fb91ff74f: {}, 0xfc18cbc391de84dbd87db83b20935d3e89f5dd91: {} }, tally: {}, votes: [] } ``` ## clique_getSnapshotAtHash {#clique-getsnapshotathash} Retrieves the state snapshot at a given block. | Client | Method invocation | | :------ | --------------------------------------------------------------- | | Console | `clique.getSnapshotAtHash(blockHash)` | | RPC | `{"method": "clique_getSnapshotAtHash", "params": [blockHash]}` | ## clique_getSigner {#clique-getsigner} Returns the signer for a specific clique block. Can be called with either a blocknumber, blockhash or an rlp encoded blob. The RLP encoded blob can either be a block or a header. | Client | Method invocation | | :------ | ---------------------------------------------------- | | Console | `clique.getSigner(blockNrOrHashOrRlp)` | | RPC | `{"method": "clique_getSigner", "params": [string]}` | ## clique_getSigners {#clique-getsigners} Retrieves the list of authorized signers at the specified block number. | Client | Method invocation | | :------ | ---------------------------------------------------------- | | Console | `clique.getSigners(blockNumber)` | | RPC | `{"method": "clique_getSigners", "params": [blockNumber]}` | ## clique_getSignersAtHash {#clique-getsignersathash} Retrieves the list of authorized signers at the specified block hash. | Client | Method invocation | | :------ | ----------------------------------------------------------- | | Console | `clique.getSignersAtHash(blockHash)` | | RPC | `{"method": "clique_getSignersAtHash", "params": [string]}` | ## clique_proposals {#clique-proposals} Returns the current proposals the node is voting on. | Client | Method invocation | | :------ | ---------------------------------------------- | | Console | `clique.proposals()` | | RPC | `{"method": "clique_proposals", "params": []}` | ## clique_propose {#clique-propose} Adds a new authorization proposal that the signer will attempt to push through. If the `auth` parameter is true, the local signer votes for the given address to be included in the set of authorized signers. With `auth` set to `false`, the vote is against the address. | Client | Method invocation | | :------ | --------------------------------------------------------- | | Console | `clique.propose(address, auth)` | | RPC | `{"method": "clique_propose", "params": [address, auth]}` | ## clique_discard {#clique-discard} This method drops a currently running proposal. The signer will not cast further votes (either for or against) the address. | Client | Method invocation | | :------ | --------------------------------------------------- | | Console | `clique.discard(address)` | | RPC | `{"method": "clique_discard", "params": [address]}` | ## clique_status {#clique-status} This is a debugging method which returns statistics about signer activity for the last 64 blocks. The returned object contains the following fields: - `inturnPercent`: percentage of blocks signed in-turn - `sealerActivity`: object containing signer addresses and the number of blocks signed by them - `numBlocks`: number of blocks analyzed | Client | Method invocation | | :------ | ------------------------------------------- | | Console | `clique.status()` | | RPC | `{"method": "clique_status", "params": []}` | **Example:** ```js > clique.status() { inturnPercent: 100, numBlocks: 64, sealerActivity: { 0x42eb768f2244c8811c63729a21a3569731535f06: 9, 0x6635f83421bf059cd8111f180f0727128685bae4: 9, 0x7ffc57839b00206d1ad20c69a1981b489f772031: 9, 0xb279182d99e65703f0076e4812653aab85fca0f0: 10, 0xd6ae8250b8348c94847280928c79fb3b63ca453e: 9, 0xda35dee8eddeaa556e4c26268463e26fb91ff74f: 9, 0xfc18cbc391de84dbd87db83b20935d3e89f5dd91: 9 } } ```