This repository provides a means to register public stake pools for the Incentivized Testnet. Successful registrations will result in the listing of a stake pool as a delegation option in all of the supported testnet wallets (Daedalus & Yoroi)
Use of this registry is subject to the following usage policy
Stake pool registrants will provide signed submissions in the form of Github pull requests into this testnet pool registry. Here they will be subject to automated checking for well-formedness and human vetting before being merged to master.
This action does not require any changes to the registry -- the inactive pools are simply ignored.
Stake pool registrants will provide signed submissions in the form of Github pull requests into this testnet pool registry. Here they will be subject to automated checking for well-formedness and human vetting before being merged to master.
Each entry contains the following information:
name | necessity | description |
---|---|---|
owner |
required | subject identifier public key |
name |
required | stake pool name |
description |
optional | stake pool description |
ticker |
required | stake pool ticker |
homepage |
required | URL of the stake pool's web page |
pledge_address |
required | a pledge address |
- | required | signature (verifiable by the public key) |
owner
public key mentioned here must match your owner public key used for registering your stake pool on chain!
Precise entry validity rules are described in the following section.
-
Submissions shall consist of a single commit, directly off the master branch of the incentivized-testnet-stakepool-registry repository.
-
Submissions are identified by the subject's Bech32-encoded Ed25519 public key (all lowercase).
-
Submissions shall either add a new entry or modify one.
-
Submissions shall involve (addition or modification) of exactly two files, under the registry subdirectory of the repository:
- the JSON submission entry file, with the
.json
extension (lowercase), - the external signature of the file, with the
.sig
extension (lowercase).
- the JSON submission entry file, with the
-
The file name part of both files must match the aforementioned encoded owner public key, up to character case (all lowercase).
-
Contents of the JSON file:
- Must be a JSON object, reasonably (non-offensively) formatted,
- Must satisfy the following JSON-schema:
{ "title": "Stake-pool Metadata", "type": "object", "additionalProperties": false, "required": [ "owner", "name", "ticker", "homepage", "pledge_address" ], "properties": { "owner": { "type": "string", "format": "bech32", "pattern": "^ed25519_pk1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]+$", "maxLength": 70 }, "name": { "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "type": "string", "minLength": 1, "maxLength": 255 }, "ticker": { "type": "string", "minLength": 3, "maxLength": 5, "pattern": "^[A-Z0-9]{3,5}$" }, "homepage": { "type": "string", "format": "uri", "pattern": "^https://" }, "pledge_address": { "type": "string", "format": "bech32", "pattern": "^addr1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]+$", "maxLength": 64 } } }
-
The
ticker
andowner
must be unique in the registry. -
The external signature file must be a ed25519 signature of the content of the metadata JSON file.
ℹ️ Notice
In this example, we'll be using a command-line tool called
jcli
. Installations instructions are available on the official Jörmungandr repository: https://github.com/input-output-hk/jormungandr.
- Clone and fork the repository
$ git clone [email protected]:cardano-foundation/incentivized-testnet-stakepool-registry
$ cd incentivized-testnet-stakepool-registry
$ git remote add submission [email protected]:<your-github-username>/incentivized-testnet-stakepool-registry
- Create a public/private key pair (
owner.prv
&owner.pub
)
$ jcli key generate --type ed25519 | tee owner.prv | jcli key to-public > owner.pub
$ cat owner.{prv,pub}
ed25519_sk1----------------------------------------------------------
ed25519_pk1qppzz38el9zxtgaw0ttmf6d6zytllfu3fnwcl5tlc3pp044artxqru55mx
- Create a minimal JSON file (
ed25519_pk1qpp...ru55mx.json
)
{
"owner": "ed25519_pk1qppzz38el9zxtgaw0ttmf6d6zytllfu3fnwcl5tlc3pp044artxqru55mx",
"name": "My Stake Pool",
"ticker": "ADA1",
"homepage": "https://cardanofoundation.org",
"pledge_address": "addr1s0nyt67uwcg7dahrxug698h5xfasnyd5qhnsd0h0peqlqvtfqf48ymz680l"
}
💡 You can check that your JSON is valid by using the JSON-schema above and your metadata file in a tool like https://www.jsonschemavalidator.net/
- Sign it using your owner private key (
ed25519_pk1qpp...ru55mx.sig
)
$ jcli key sign \
--secret-key owner.prv \
--output ed25519_pk1qppzz38el9zxtgaw0ttmf6d6zytllfu3fnwcl5tlc3pp044artxqru55mx.sig \
ed25519_pk1qppzz38el9zxtgaw0ttmf6d6zytllfu3fnwcl5tlc3pp044artxqru55mx.json
- Create a commit for the submission
$ git add ed25519_pk1qppzz38el9zxtgaw0ttmf6d6zytllfu3fnwcl5tlc3pp044artxqru55mx.{json,sig}
$ git commit -m "ADA1"
$ git push submission HEAD
- Make a pull request 🎉!