# Synthetix > On-chain contract: Synthetix. 17 functions, 5 events. MCP endpoint: https://synthetix.mcp.junct.dev/mcp Domain: analytics Auth: none ## Tools ## Read ### name Calls name(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns string. _No parameters required._ ### totalSupply Calls totalSupply(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. _No parameters required._ ### decimals Calls decimals(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint8. _No parameters required._ ### nominatedOwner Calls nominatedOwner(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### balanceOf Calls balanceOf(owner: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. **Parameters:** - `owner` (string, required): address (Ethereum address, 0x-prefixed). ### owner Calls owner(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### useDELEGATECALL Calls useDELEGATECALL(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool. _No parameters required._ ### symbol Calls symbol(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns string. _No parameters required._ ### target Calls target(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### allowance Calls allowance(owner: string, spender: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. **Parameters:** - `owner` (string, required): address (Ethereum address, 0x-prefixed). - `spender` (string, required): address (Ethereum address, 0x-prefixed). ## Write ### approve Calls approve(spender: string, value: string). Unrestricted — any address can call this, but caller-specific logic may apply. Returns bool. **Parameters:** - `spender` (string, required): address (Ethereum address, 0x-prefixed). - `value` (string, required): uint256 (uint256, pass as decimal string). ### nominateNewOwner Calls nominateNewOwner(_owner: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `_owner` (string, required): address (Ethereum address, 0x-prefixed). ### transferFrom Calls transferFrom(from: string, to: string, value: string). Unrestricted — any address can call this, but caller-specific logic may apply. Returns bool. **Parameters:** - `from` (string, required): address (Ethereum address, 0x-prefixed). - `to` (string, required): address (Ethereum address, 0x-prefixed). - `value` (string, required): uint256 (uint256, pass as decimal string). ### setTarget Calls setTarget(_target: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `_target` (string, required): address (Ethereum address, 0x-prefixed). ### acceptOwnership Calls acceptOwnership(). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Completes a two-step ownership transfer. Must be called by the pending owner address set via transferOwnership(). No return value. _No parameters required._ ### transfer Calls transfer(to: string, value: string). Unrestricted — any address can call this, but caller-specific logic may apply. Returns bool. **Parameters:** - `to` (string, required): address (Ethereum address, 0x-prefixed). - `value` (string, required): uint256 (uint256, pass as decimal string). ### setUseDELEGATECALL Calls setUseDELEGATECALL(value: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `value` (boolean, required): bool. ## Event ### Transfer Event emitted by the contract. Indexed fields (filterable): from, to. Subscribe via log filters. **Parameters:** - `from` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `to` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `value` (string, required): uint256 (uint256, pass as decimal string). ### Approval Event emitted by the contract. Indexed fields (filterable): owner, spender. Subscribe via log filters. **Parameters:** - `owner` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `spender` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `value` (string, required): uint256 (uint256, pass as decimal string). ### TargetUpdated Event emitted by the contract. Subscribe via log filters. **Parameters:** - `newTarget` (string, required): address (Ethereum address, 0x-prefixed). ### OwnerNominated Event emitted by the contract. Subscribe via log filters. **Parameters:** - `newOwner` (string, required): address (Ethereum address, 0x-prefixed). ### OwnerChanged Event emitted by the contract. Subscribe via log filters. **Parameters:** - `oldOwner` (string, required): address (Ethereum address, 0x-prefixed). - `newOwner` (string, required): address (Ethereum address, 0x-prefixed). ## Usage Connect to this MCP server at `https://synthetix.mcp.junct.dev/mcp`. All tools are callable via the MCP protocol. Call `name` first to query current state before any write operations. Write operations like `approve` return data or calldata for agent use.