API Reference
Reference for https://api.holonym.io
Endpoints
GET /sybil-resistance/<credential-type>/<network>?user=<user-address>&action-id=<action-id>
/sybil-resistance/<credential-type>/<network>?user=<user-address>&action-id=<action-id>Get whether the user has registered for the given action-id.
When a user "registers", they are establishing that the given blockchain address is a unique person for the action ID. See the section Sybil resistance for more information about how action IDs can be used.
If credential-type is gov-id, this endpoint uses Holonym smart contracts to check whether the user has completed KYC with a unique government ID. If credential-type is epassport, this endpoint uses Holonym smart contracts to check whether the user has a unique NFC-enabled passport. If credential-type is phone, this endpoint uses Holonym smart contract to check whether the user has proven ownership of a unique phone number. If credential-type is biometrics, this endpoint uses Holonym smart contract to check whether the user has proven ownership of a unique (non-personally identifying) face.
See the following documentation How to get user's proofs for how to use action IDs.
Parameters
namedescriptiontypeinrequiredcredential-type'gov-id' or 'phone' or 'biometrics'
string
path
true
network'optimism' or 'base-sepolia'
string
path
true
userUser's blockchain address
string
query
true
action-idAction ID
string
query
true
Example
const resp = await fetch('https://api.holonym.io/sybil-resistance/gov-id/optimism?user=0x0000000000000000000000000000000000000000&action-id=123456789'); const { result: isUnique } = await resp.json();Responses
200
{ "result": true, }200
Result if user has not submitted a valid proof.
{ "result": false, }
GET /residence/country/us/<network>?user=<user-address>
/residence/country/us/<network>?user=<user-address>Get whether the user resides in the US.
For the /residence/country/<country-code> endpoints, <country-code> will be a 2-letter country code following the ISO 3166 standard. Holonym currently only supports queries for US residency.
Parameters
namedescriptiontypeinrequirednetwork'optimism' or 'optimism-goerli'
string
path
true
userUser's blockchain address
string
query
true
Example
Responses
200
Result if user resides in the US.
200
Result if user has not submitted a valid proof that they reside in the US.
GET /snapshot-strategies/residence/country/us?network=<network>&snapshot=<snapshot>&addresses=<addresses>
/snapshot-strategies/residence/country/us?network=<network>&snapshot=<snapshot>&addresses=<addresses>Returns a list of scores indicating, for each address, whether the address has submitted a valid and unique proof of US residency.
Every score is either 1 or 0.
1
Address has proven US residency
0
Address has not proven US residency
Use with Snapshot
To use with the "api" Snapshot strategy, specify the strategy parameters using the following format.
Use without Snapshot
Parameters
namedescriptiontypeinrequirednetworkChain ID
string
query
true
snapshotBlock height
string
query
true
addressesList of blockchain address separated by commas
string
query
true
Example
Responses
200
GET /snapshot-strategies/sybil-resistance/gov-id?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>
/snapshot-strategies/sybil-resistance/gov-id?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>Returns a list of scores indicating, for each address, whether the address has submitted a valid proof of uniqueness for the given action-id.
Every score is either 1 or 0.
1
Address has proven uniqueness for action-id
0
Address has not proven uniqueness for action-id
Use with Snapshot
To use with the "api" Snapshot strategy, specify the strategy parameters using the following format. We highly recommend that projects use the default action-id 123456789 to avoid cases where users sell actions associated with action-ids that they do not care about.
Use without Snapshot
Parameters
namedescriptiontypeinrequirednetworkChain ID
string
query
true
snapshotBlock height
string
query
true
addressesList of blockchain address separated by commas
string
query
true
Example
Responses
200
GET /snapshot-strategies/sybil-resistance/phone?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>
/snapshot-strategies/sybil-resistance/phone?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>Returns a list of scores indicating, for each address, whether the address has submitted a valid proof of uniqueness (using phone number) for the given action-id.
Every score is either 1 or 0.
1
Address has proven uniqueness for action-id
0
Address has not proven uniqueness for action-id
Use with Snapshot
To use with the "api" Snapshot strategy, specify the strategy parameters using the following format. We suggest that you use the default action-id 123456789. If you are using a different action-id, replace 123456789 with your action-id.
Use without Snapshot
Parameters
namedescriptiontypeinrequirednetworkChain ID
string
query
true
snapshotBlock height
string
query
true
addressesList of blockchain address separated by commas
string
query
true
Example
Responses
200
GET /snapshot-strategies/sybil-resistance/biometrics?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>
/snapshot-strategies/sybil-resistance/biometrics?network=<network>&snapshot=<snapshot>&addresses=<addresses>&action-id=<action-id>Returns a list of scores indicating, for each address, whether the address has submitted a valid proof of uniqueness (using non-personally identifying face vectors) for the given action-id.
Every score is either 1 or 0.
1
Address has proven uniqueness for action-id
0
Address has not proven uniqueness for action-id
Use with Snapshot
To use with the "api" Snapshot strategy, specify the strategy parameters using the following format. We suggest that you use the default action-id 123456789. If you are using a different action-id, replace 123456789 with your action-id.
Use without Snapshot
Parameters
namedescriptiontypeinrequirednetworkChain ID
string
query
true
snapshotBlock height
string
query
true
addressesList of blockchain address separated by commas
string
query
true
Example
Responses
200
Last updated