API Reference
Endpoints
- GET
/sybil-resistance/gov-id/<network> - GET
/sybil-resistance/epassport/<network> - GET
/sybil-resistance/phone/<network> - GET
/sybil-resistance/biometrics/<network> - GET
/residence/country/us/<network> - GET
/snapshot-strategies/residence/country/us - GET
/snapshot-strategies/sybil-resistance/gov-id - GET
/snapshot-strategies/sybil-resistance/phone - GET
/snapshot-strategies/sybil-resistance/biometrics
GET /sybil-resistance/<credential-type>/<network>
Determines whether a user has registered for a given action ID, establishing that their blockchain address represents a unique individual.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
credential-type | gov-id, epassport, phone, or biometrics | string | Yes |
network | optimism or base-sepolia | string | Yes |
user | User’s blockchain address | string | Yes |
action-id | Action ID for the registration | string | Yes |
Example Request:
const resp = await fetch('https://api.holonym.io/sybil-resistance/gov-id/optimism?user=0x0000000000000000000000000000000000000000&action-id=123456789');
const { result: isUnique } = await resp.json();Response (200):
{
"result": true
}Or if no valid proof submitted:
{
"result": false
}GET /residence/country/us/<network>
Verifies whether a user resides in the US (currently the only supported country).
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
network | optimism or optimism-goerli | string | Yes |
user | User’s blockchain address | string | Yes |
Example Request:
const resp = await fetch('https://api.holonym.io/residence/country/us/optimism?user=0x0000000000000000000000000000000000000000');
const { result: isUSResident } = await resp.json();Response (200):
{
"result": true
}GET /snapshot-strategies/residence/country/us
Returns scores (1 or 0) for each address indicating proven US residency, compatible with Snapshot voting strategies.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
network | Chain ID | string | Yes |
snapshot | Block height | string | Yes |
addresses | Comma-separated blockchain addresses | string | Yes |
Example Request:
const resp = await fetch('https://api.holonym.io/snapshot-strategies/residence/country/us?network=420&snapshot=9001&addresses=0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000001');Response (200):
{
"score": [
{
"address": "0x0000000000000000000000000000000000000000",
"score": 0
},
{
"address": "0x0000000000000000000000000000000000000001",
"score": 1
}
]
}GET /snapshot-strategies/sybil-resistance/gov-id
Returns uniqueness scores for each address based on government ID verification for the specified action ID.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
network | Chain ID | string | Yes |
snapshot | Block height | string | Yes |
addresses | Comma-separated blockchain addresses | string | Yes |
action-id | Action ID for uniqueness check | string | Yes |
Snapshot Configuration:
{
"api": "https://api.holonym.io",
"symbol": "",
"decimals": 0,
"strategy": "snapshot-strategies/sybil-resistance/gov-id",
"additionalParameters": "action-id=123456789"
}Response (200):
{
"score": [
{
"address": "0x0000000000000000000000000000000000000000",
"score": 0
},
{
"address": "0x0000000000000000000000000000000000000001",
"score": 1
}
]
}GET /snapshot-strategies/sybil-resistance/phone
Returns uniqueness scores based on verified phone number ownership for the specified action ID.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
network | Chain ID | string | Yes |
snapshot | Block height | string | Yes |
addresses | Comma-separated blockchain addresses | string | Yes |
action-id | Action ID for uniqueness check | string | Yes |
Snapshot Configuration:
{
"api": "https://api.holonym.io",
"symbol": "",
"decimals": 0,
"strategy": "snapshot-strategies/sybil-resistance/phone",
"additionalParameters": "action-id=123456789"
}Response (200):
{
"score": [
{
"address": "0x0000000000000000000000000000000000000000",
"score": 0
},
{
"address": "0x0000000000000000000000000000000000000001",
"score": 1
}
]
}GET /snapshot-strategies/sybil-resistance/biometrics
Returns uniqueness scores based on verified non-personally identifying biometric data for the specified action ID.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
network | Chain ID | string | Yes |
snapshot | Block height | string | Yes |
addresses | Comma-separated blockchain addresses | string | Yes |
action-id | Action ID for uniqueness check | string | Yes |
Snapshot Configuration:
{
"api": "https://api.holonym.io",
"symbol": "",
"decimals": 0,
"strategy": "snapshot-strategies/sybil-resistance/biometrics",
"additionalParameters": "action-id=123456789"
}Response (200):
{
"score": [
{
"address": "0x0000000000000000000000000000000000000000",
"score": 0
},
{
"address": "0x0000000000000000000000000000000000000001",
"score": 1
}
]
}