Eligibility Registers
Get Wallet Eligibility
Where one wallet stands on every eligibility register of your instance
GET
/
customers
/
api
/
eligibility
/
wallet
/
{walletAddress}
curl "https://api.trusset.org/customers/api/eligibility/wallet/0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA" \
-H "X-API-Key: trusset_your_key_here"
const wallet = '0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA';
const response = await fetch(
`https://api.trusset.org/customers/api/eligibility/wallet/${wallet}`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const professional = data.profiles.find(
(entry: { profile: { key: string } }) => entry.profile.key === 'PROFESSIONAL'
);
const admittedOnChain = professional?.onChain?.verified === true;
{
"success": true,
"data": {
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"profiles": [
{
"profile": {
"key": "PROFESSIONAL",
"name": "Professional",
"entityType": "INDIVIDUAL",
"professionalOnly": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390"
},
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"admissionMode": "REGISTER",
"admission": {
"id": "cmgdz1k4p0003l40a2r5w8y1n",
"profileKey": "PROFESSIONAL",
"profileName": "Professional",
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"customerId": "cmgdy2b7r0004l40a9c3e6f2h",
"status": "ADMITTED",
"source": "API",
"sourceRef": null,
"lapsed": false,
"current": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390",
"dueAt": "2027-10-05T11:02:36.000Z",
"admittedTxHash": "0xa26d665a8a5906cedfa63287b1b36e65ec42a1fd5c30617ac52bdc2d2d541d73",
"admittedAt": "2026-10-05T11:02:36.000Z",
"removalReason": null,
"removalTxHash": null,
"removedAt": null,
"signedBy": "0xCD92134767aEC2562be15d2a2062A082dA17dD84",
"error": null,
"createdAt": "2026-10-05T10:47:09.512Z",
"updatedAt": "2026-10-05T11:03:05.214Z"
},
"onChain": {
"registered": true,
"verified": true
}
},
{
"profile": {
"key": "professional-companies",
"name": "Professional companies",
"entityType": "COMPANY",
"professionalOnly": true,
"requirementsHash": "0x54c373e63d66f499464d432a554dad941c51702d6d37abd06a6faea7b8874e80"
},
"registryAddress": "0x9cf39640Ad6296e4DF0FaBb764917B6dAe5aB7Cc",
"admissionMode": "REGISTER",
"admission": null,
"onChain": {
"registered": false,
"verified": false
}
}
]
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T12:00:00.000Z"
}
}
Reports, for one wallet, every verification profile of your instance that carries an eligibility register: the admission recorded for the wallet, and what the register itself answers right now. Use it before a lending or vault action to tell whether a gate built on a profile will admit the wallet.
The register’s live answer is what a market or vault reads. It can differ from the admission: a removal waiting to be signed leaves the wallet on the register, and a register managed outside Trusset can hold wallets no admission was recorded for.
Path Parameters
string
required
The wallet,
0x followed by 40 hex characters.Query Parameters
string
default:"true"
false skips the chain reads, so every onChain is null. Any other value reads the registers.Response Fields
object
Show child attributes
Show child attributes
string
The wallet, checksummed.
array
One entry per profile with a register, oldest profile first. Empty when no profile has one.
Show child attributes
Show child attributes
object
{ key, name, entityType, professionalOnly, requirementsHash }.string
The profile’s eligibility register.
string
REGISTER, INSTANCE_REGISTER or EXTERNAL, recorded when the register was bound. See Which registers can be signed here.object
The wallet’s admission to that register, as on List Admissions, or
null when none was recorded.object
The register’s live answer.
null with live=false.Show child attributes
Show child attributes
boolean
Whether the wallet holds an identity on the register (
contains). null when the register does not answer contains.boolean
What
isVerified(address) answers, which is what a market or vault gate reads.boolean
Present and
true, alone, when the register could not be read. It says nothing about the wallet.onChain.unavailable: true is a failed read, not a verdict. Do not treat the wallet as refused, and do not queue an admission or removal because of it. Read again shortly.curl "https://api.trusset.org/customers/api/eligibility/wallet/0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA" \
-H "X-API-Key: trusset_your_key_here"
const wallet = '0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA';
const response = await fetch(
`https://api.trusset.org/customers/api/eligibility/wallet/${wallet}`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const professional = data.profiles.find(
(entry: { profile: { key: string } }) => entry.profile.key === 'PROFESSIONAL'
);
const admittedOnChain = professional?.onChain?.verified === true;
{
"success": true,
"data": {
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"profiles": [
{
"profile": {
"key": "PROFESSIONAL",
"name": "Professional",
"entityType": "INDIVIDUAL",
"professionalOnly": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390"
},
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"admissionMode": "REGISTER",
"admission": {
"id": "cmgdz1k4p0003l40a2r5w8y1n",
"profileKey": "PROFESSIONAL",
"profileName": "Professional",
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"customerId": "cmgdy2b7r0004l40a9c3e6f2h",
"status": "ADMITTED",
"source": "API",
"sourceRef": null,
"lapsed": false,
"current": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390",
"dueAt": "2027-10-05T11:02:36.000Z",
"admittedTxHash": "0xa26d665a8a5906cedfa63287b1b36e65ec42a1fd5c30617ac52bdc2d2d541d73",
"admittedAt": "2026-10-05T11:02:36.000Z",
"removalReason": null,
"removalTxHash": null,
"removedAt": null,
"signedBy": "0xCD92134767aEC2562be15d2a2062A082dA17dD84",
"error": null,
"createdAt": "2026-10-05T10:47:09.512Z",
"updatedAt": "2026-10-05T11:03:05.214Z"
},
"onChain": {
"registered": true,
"verified": true
}
},
{
"profile": {
"key": "professional-companies",
"name": "Professional companies",
"entityType": "COMPANY",
"professionalOnly": true,
"requirementsHash": "0x54c373e63d66f499464d432a554dad941c51702d6d37abd06a6faea7b8874e80"
},
"registryAddress": "0x9cf39640Ad6296e4DF0FaBb764917B6dAe5aB7Cc",
"admissionMode": "REGISTER",
"admission": null,
"onChain": {
"registered": false,
"verified": false
}
}
]
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T12:00:00.000Z"
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
INVALID_ADDRESS | 400 | walletAddress is not a valid address, or is the zero address |
INSTANCE_NOT_FOUND | 404 | The instance behind your key no longer exists |
ELIGIBILITY_NETWORK_UNSUPPORTED | 409 | Your instance is not on Ethereum and live was not false |
RATE_LIMIT_EXCEEDED | 429 | Your instance went over its budget of 120 eligibility requests per minute |
WALLET_ELIGIBILITY_FAILED | 500 | The admissions could not be read |
⌘I
curl "https://api.trusset.org/customers/api/eligibility/wallet/0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA" \
-H "X-API-Key: trusset_your_key_here"
const wallet = '0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA';
const response = await fetch(
`https://api.trusset.org/customers/api/eligibility/wallet/${wallet}`,
{ headers: { 'X-API-Key': 'trusset_your_key_here' } }
);
const { data } = await response.json();
const professional = data.profiles.find(
(entry: { profile: { key: string } }) => entry.profile.key === 'PROFESSIONAL'
);
const admittedOnChain = professional?.onChain?.verified === true;
{
"success": true,
"data": {
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"profiles": [
{
"profile": {
"key": "PROFESSIONAL",
"name": "Professional",
"entityType": "INDIVIDUAL",
"professionalOnly": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390"
},
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"admissionMode": "REGISTER",
"admission": {
"id": "cmgdz1k4p0003l40a2r5w8y1n",
"profileKey": "PROFESSIONAL",
"profileName": "Professional",
"registryAddress": "0x4f2A9c81D06e3b75A1C8E24D9B07f56E3a1d8C90",
"walletAddress": "0xfF21b8AC28Bb6A20c1c0160AF42303D2946B99EA",
"customerId": "cmgdy2b7r0004l40a9c3e6f2h",
"status": "ADMITTED",
"source": "API",
"sourceRef": null,
"lapsed": false,
"current": true,
"requirementsHash": "0x8919ea37bac1f44ea0e8a37529be970cb49e9779ebd4c4e98490cfd754e9d390",
"dueAt": "2027-10-05T11:02:36.000Z",
"admittedTxHash": "0xa26d665a8a5906cedfa63287b1b36e65ec42a1fd5c30617ac52bdc2d2d541d73",
"admittedAt": "2026-10-05T11:02:36.000Z",
"removalReason": null,
"removalTxHash": null,
"removedAt": null,
"signedBy": "0xCD92134767aEC2562be15d2a2062A082dA17dD84",
"error": null,
"createdAt": "2026-10-05T10:47:09.512Z",
"updatedAt": "2026-10-05T11:03:05.214Z"
},
"onChain": {
"registered": true,
"verified": true
}
},
{
"profile": {
"key": "professional-companies",
"name": "Professional companies",
"entityType": "COMPANY",
"professionalOnly": true,
"requirementsHash": "0x54c373e63d66f499464d432a554dad941c51702d6d37abd06a6faea7b8874e80"
},
"registryAddress": "0x9cf39640Ad6296e4DF0FaBb764917B6dAe5aB7Cc",
"admissionMode": "REGISTER",
"admission": null,
"onChain": {
"registered": false,
"verified": false
}
}
]
},
"error": null,
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-10-05T12:00:00.000Z"
}
}
