Skip to Content

GET /api/v1/ens-roles/names/:name/roles

Get all roles (owner, manager, ETH address) for a specific ENS name, resolved on-chain.

Authentication: None

Cache: 15s

Path Parameters

ParameterTypeRequiredDescription
namestringYesENS name (must end with .eth or contain .)

Sample Request

curl "https://api.grails.app/api/v1/ens-roles/names/brantly.eth/roles"

Response

// 200 OK { "success": true, "data": { "name": "brantly.eth", "owner": "0x983110309620d911731ac0932219af06091b6744", "manager": "0x983110309620d911731ac0932219af06091b6744", "ethAddress": "0x983110309620d911731ac0932219af06091b6744", "isWrapped": true, "fuses": { "canUnwrap": false, "canBurnFuses": true, "canTransfer": true, "canSetResolver": true, "canSetTTL": true, "canCreateSubdomain": true, "parentCanControl": false, "canExtendExpiry": true, "raw": 65537 }, "expiryDate": 1745000000, "resolver": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63" }, "meta": { "timestamp": "2026-04-08T00:00:00.000Z", "version": "1.0.0" } }

Response Fields

FieldTypeDescription
namestringThe ENS name
ownerstring | nullNFT holder address (registrant for unwrapped, wrappedOwner for wrapped)
managerstring | nullAddress authorized to edit records (same as owner for wrapped names)
ethAddressstring | nullETH address record (where funds are sent)
isWrappedbooleanWhether the name is wrapped in the NameWrapper contract
fusesobject | nullFuse permissions (only for wrapped names)
expiryDatenumber | nullRegistration expiry (Unix timestamp)
resolverstring | nullResolver contract address

Error Responses

StatusCodeDescription
400VALIDATION_ERRORInvalid ENS name format
404NAME_NOT_FOUNDENS name not found on chain
Last updated on