Skip to main content
The Go module is a backend signing utility only. It is used to generate rp_context signatures for IDKit requests, and does not run client-side IDKit request flows.

Install

go get github.com/worldcoin/idkit/go/idkit@latest

Generate RP signature

Use idkit.SignRequestWithTTL instead to configure the signature’s expiration time (default is 5 minutes).
import "github.com/worldcoin/idkit/go/idkit"

sig, err := idkit.SignRequest(os.Getenv("RP_SIGNING_KEY"))
if err != nil {
	// handle error
}

rpContext := map[string]any{
	"rp_id":      "rp_xxxxx",
	"nonce":      sig.Nonce,
	"created_at": sig.CreatedAt,
	"expires_at": sig.ExpiresAt,
	"signature":  sig.Sig,
}

API

  • SignRequest(signingKeyHex)
  • SignRequestWithTTL(signingKeyHex, ttl)