# ENS > On-chain contract: ENS. 20 functions, 3 events. MCP endpoint: https://ens.mcp.junct.dev/mcp Domain: naming Auth: none ## Tools ## Read ### MIN_REGISTRATION_DURATION Calls MIN_REGISTRATION_DURATION(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. _No parameters required._ ### available [DISCOVERY] Calls available(name: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool. **Parameters:** - `name` (string, required): string. ### commitments Calls commitments(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. **Parameters:** - `param0` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### makeCommitment Calls makeCommitment(name: string, owner: string, duration: string, secret: string, resolver: string, data: string[], reverseRecord: boolean, ownerControlledFuses: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bytes32. **Parameters:** - `name` (string, required): string. - `owner` (string, required): address (Ethereum address, 0x-prefixed). - `duration` (string, required): uint256 (uint256, pass as decimal string). - `secret` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `resolver` (string, required): address (Ethereum address, 0x-prefixed). - `data` (array, required): bytes[] (hex-encoded bytes, 0x-prefixed). - `reverseRecord` (boolean, required): bool. - `ownerControlledFuses` (string, required): uint16 (uint16, pass as decimal string). ### maxCommitmentAge Calls maxCommitmentAge(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. _No parameters required._ ### minCommitmentAge Calls minCommitmentAge(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. _No parameters required._ ### nameWrapper Calls nameWrapper(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### owner Calls owner(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### prices Calls prices(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### rentPrice Calls rentPrice(name: string, duration: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns price (tuple). **Parameters:** - `name` (string, required): string. - `duration` (string, required): uint256 (uint256, pass as decimal string). ### reverseRegistrar Calls reverseRegistrar(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### supportsInterface Calls supportsInterface(interfaceID: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool. **Parameters:** - `interfaceID` (string, required): bytes4 (bytes4, hex string, 0x-prefixed). ### valid Calls valid(name: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool. **Parameters:** - `name` (string, required): string. ## Write ### commit Calls commit(commitment: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `commitment` (string, required): bytes32 (32-byte hex string, 0x-prefixed). ### recoverFunds Calls recoverFunds(_token: string, _to: string, _amount: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `_token` (string, required): address (Ethereum address, 0x-prefixed). - `_to` (string, required): address (Ethereum address, 0x-prefixed). - `_amount` (string, required): uint256 (uint256, pass as decimal string). ### register Calls register(name: string, owner: string, duration: string, secret: string, resolver: string, data: string[], reverseRecord: boolean, ownerControlledFuses: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `name` (string, required): string. - `owner` (string, required): address (Ethereum address, 0x-prefixed). - `duration` (string, required): uint256 (uint256, pass as decimal string). - `secret` (string, required): bytes32 (32-byte hex string, 0x-prefixed). - `resolver` (string, required): address (Ethereum address, 0x-prefixed). - `data` (array, required): bytes[] (hex-encoded bytes, 0x-prefixed). - `reverseRecord` (boolean, required): bool. - `ownerControlledFuses` (string, required): uint16 (uint16, pass as decimal string). ### renew Calls renew(name: string, duration: string). Requires ETH value to be sent with the transaction. Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `name` (string, required): string. - `duration` (string, required): uint256 (uint256, pass as decimal string). ### renounceOwnership Calls renounceOwnership(). Restricted: requires onlyOwner — only the owner address can call this. DANGER: Permanently and irreversibly removes all owner control from the contract. After calling, no address will ever be able to call onlyOwner functions again including adapter management, oracle configuration, emergency controls, and all set* functions. This action cannot be undone. No return value. _No parameters required._ ### transferOwnership Calls transferOwnership(newOwner: string). Restricted: requires onlyOwner — only the owner address can call this. Transfers ownership to a new address. The new owner must call acceptOwnership() to complete the transfer (two-step pattern). No return value. **Parameters:** - `newOwner` (string, required): address (Ethereum address, 0x-prefixed). ### withdraw Calls withdraw(). Unrestricted — any address can call this, but caller-specific logic may apply. Note: In vaults with async settlement, this queues a withdrawal request rather than transferring assets immediately. Assets are distributed when the settlement batch is processed (e.g. settleQueue). Returns a preview based on current NAV — actual payout depends on settlement NAV. No return value. _No parameters required._ ## Event ### NameRegistered Event emitted by the contract. Indexed fields (filterable): label, owner. Subscribe via log filters. **Parameters:** - `name` (string, required): string. - `label` (string, required): bytes32 (32-byte hex string, 0x-prefixed) (indexed). - `owner` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `baseCost` (string, required): uint256 (uint256, pass as decimal string). - `premium` (string, required): uint256 (uint256, pass as decimal string). - `expires` (string, required): uint256 (uint256, pass as decimal string). ### NameRenewed Event emitted by the contract. Indexed fields (filterable): label. Subscribe via log filters. **Parameters:** - `name` (string, required): string. - `label` (string, required): bytes32 (32-byte hex string, 0x-prefixed) (indexed). - `cost` (string, required): uint256 (uint256, pass as decimal string). - `expires` (string, required): uint256 (uint256, pass as decimal string). ### OwnershipTransferred Event emitted by the contract. Indexed fields (filterable): previousOwner, newOwner. Subscribe via log filters. **Parameters:** - `previousOwner` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `newOwner` (string, required): address (Ethereum address, 0x-prefixed) (indexed). ## Usage Connect to this MCP server at `https://ens.mcp.junct.dev/mcp`. All tools are callable via the MCP protocol. Call `MIN_REGISTRATION_DURATION` first to query current state before any write operations. Write operations like `commit` return data or calldata for agent use.