> For the complete documentation index, see [llms.txt](https://doc.cess.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.cess.network/developer/cess-sdk/sdk-golang/chain_related/sminer/registerpoiskey.md).

# RegisterPoisKey

This is the interface for storage miners to register pois keys and is in the second stage of storage miner registration, the first stage being the call to the [RegnstkSminer](/developer/cess-sdk/sdk-golang/chain_related/sminer/regnstksminer.md) interface.

```golang
// RegisterPoisKey register pois key, storage miner registration
// requires two stages, this is the second one.
//
//   - poisKey: pois key
//   - teeSignWithAcc: tee's sign with account
//   - teeSign: tee's sign
//   - teePuk: tee's work public key
//
// Return:
//   - string: block hash
//   - error: error message
//
// Note:
//   - storage miners must complete the first stage to register for the second stage
func (c *ChainClient) RegisterPoisKey(poisKey PoISKeyInfo, teeSignWithAcc, teeSign types.Bytes, teePuk WorkerPublicKey) (string, error)
```

For the type definition, please refer to [PoISKeyInfo](https://github.com/CESSProject/doc-v2/blob/main/developer/cess-sdk/sdk-golang/chain_related/chain_type.md#PoISKeyInfo), [WorkerPublicKey](https://github.com/CESSProject/doc-v2/blob/main/developer/cess-sdk/sdk-golang/chain_related/chain_type.md#Type-definition)

For example code, please refer to [run.go](https://github.com/CESSProject/cess-miner/blob/main/cmd/console/run.go)
