Endpoint Definition

To use the Gitcoin Scorer API to score an Ethereum address, you need to have a Scorer app configured, an associated Scorer ID, and your API keys.
Learn more about these credentials from our API Access guide.

Available endpoints

To get a Passport score from an ETH address, follow these steps:
  1. 1.
    Optional: Retrieve a signing message from the Scorer GET /registry/signing-message
  2. 2.
    Submit the Ethereum address to the Scorer POST /registry/submit-passport
  3. 3.
    Retrieve the Passport score for one or multiple addresses GET /registry/score/{scorer_id}/{address} GET /registry/score/{scorer_id}
You can also receive the specific Stamps data:

Retrieve a signing message

This endpoint returns a message verifying the agreement to submit a wallet address for scoring, and a nonce that can be used to verify the authenticity of the signed message.
You don't need to get a signature from this endpoint, but you do need a signature from the wallet you are scoring that proves that the user owns the wallet.
GET /registry/signing-message
Sample request
curl --location \
--request GET 'https://api.scorer.gitcoin.co/registry/signing-message' \
--header 'X-API-KEY: {API KEY}'
Sample response
1
{
2
"message": "I hereby agree to submit my address in order to score my associated Gitcoin Passport from Ceramic.\n\nNonce: {Nonce}\n",
3
"nonce": "{Nonce}"
4
}

Submit for scoring

Before receiving a Passport score, developers need to submit an Ethereum address to their Scorer.
To do so, developers need to POST the relevant Ethereum address and their Scorer ID to this endpoint.
POST /registry/submit-passport

JSON body parameters

Name
Type
Required
Description
address
Text
Yes
The wallet address
scorer_id
Text
Yes
The Scorer ID
signature
Text
No
Signature received from the wallet
nonce
Text
No
Nonce generated in the signing message. This is needed for requiring a signature before scoring.
Sample Response
1
{
2
"address": "{address}",
3
"score": null,
4
"status": "PROCESSING",
5
"last_score_timestamp": "2023-02-03T12:08:21.735838+00:00",
6
"evidence": null,
7
"error": null
8
}

Get scores

You must submit any Passports you'd like to request a score for via the Submit for scoring endpoint before successfully receiving their scores via these endpoints.
Use these endpoints to retrieve the score for one Ethereum address, or all Ethereum addresses that have been submitted to a Scorer.
To request the score of a specified address:
GET /registry/score/{scorer_id}/{address}
Sample request
curl --request GET 'https://api.scorer.gitcoin.co/registry/score/{scorer_id}/{address}' \
--header 'X-API-KEY: {API KEY}'
To request the scores for all addresses that have been submitted to a Scorer:
GET /registry/score/{scorer_id}
Sample request
curl --location --request GET 'https://api.scorer.gitcoin.co/registry/score/{scorer_id}' \
--header 'X-API-KEY: {API KEY}'
Sample response
1
{
2
"items": [
3
{
4
"address": "{wallet}",
5
"score": "{score}",
6
"status": "DONE",
7
"last_score_timestamp": "{timestamp}",
8
"evidence": null,
9
"error": null
10
},
11
{
12
"address": "{wallet}",
13
"score": "{score}",
14
"status": "DONE",
15
"last_score_timestamp": "{timestamp}",
16
"evidence": null,
17
"error": null
18
}
19
],
20
"count": 2
21
}

Get Stamps

Use this endpoint to request all Stamps that have been connected to an Ethereum address.
If you would like to retrieve the metadata for all available Stamps, please use the Get Stamps metadata endpoint.
GET /registry/stamps/{address}

Query parameters

Name
Required
Text
include_metadata
No
[Beta] Returns optional metadata object with additional details about connected Stamps.
Sample request
curl --request GET 'https://api.scorer.gitcoin.co/registry/stamps/{address}?include_metadata=true' \
--header 'X-API-KEY: {API KEY}'
Sample response
{
"next": "string",
"prev": "string",
"items": [
{
"version": "string",
"credential": {},
"metadata": {}
}
]
}

Get Stamps metadata

Use this endpoint to request all Stamps available on Passport.
If you would like to retrieve just the Stamps that are connected to a specified Ethereum address, please use the Get Stamps endpoint.
GET /registry/stamp-metadata
Sample request
curl --request GET 'https://api.scorer.gitcoin.co/registry/stamp-metadata' \
--header 'X-API-KEY: {API KEY}'
Sample response
[
{
"id": "string",
"icon": "string",
"name": "string",
"description": "string",
"connectMessage": "string",
"groups": [
{
"name": "string",
"stamps": [
{
"name": "string",
"description": "string",
"hash": "string"
}
]
}
]
}
]