Doti Protocol (.i) MCP Server
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Sovereign .i Web3 identity and multi-chain domain tools across four EVM networks.
| Author | io.github.robdomain |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2806 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Doti Protocol (.i) MCP Server": {
"url": "https://doti.my/api/ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (19)
check_domain_availabilityCheck if a .i sovereign domain is available for registration across all 4 supported chains (Arbitrum One, Optimism, Ethereum, Robinhood).
Parameters:
domainName(required) — string — The .i domain name or label (e.g. "alex" or "alex.i")
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
resolve_domain_identityResolve a .i web3 domain name or 0x Ethereum wallet address to its sovereign identity, owner, metadata, social links, and current chain location.
Parameters:
identifier(required) — string — The .i domain name (e.g. "genesis.i") or EVM wallet address (0x...)chainId— number — Optional filter for target network (42161: Arbitrum One, 10: Optimism, 1: Ethereum, 4663: Robinhood)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_supported_chainsRetrieve technical network specifications, Chainlink CCIP selectors, router contracts, and registry addresses for all 4 supported chains.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
estimate_registrationCalculate registration fee, escrow payment requirements, and cross-chain CCIP bridging costs on any of the 4 supported networks.
Parameters:
domainName(required) — string — The .i domain name to estimatetargetChainId— number — Target payment network: 42161 (Arbitrum), 10 (Optimism), 1 (Ethereum), or 4663 (Robinhood). Defaults to 42161.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_primary_domainPrepare an unsigned transaction payload to set or update the primary reverse resolution domain identity for a given wallet address on Arbitrum One. Requires user wallet signature.
Parameters:
domainName(required) — string — The .i domain name (e.g. "agent.i")ownerAddress(required) — string — The 0x EVM owner address
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_domain_profilePrepare an unsigned transaction payload to update decentralized identity profile metadata, social links, website URL, and IPFS avatar CID on-chain. Requires owner wallet signature.
Parameters:
domainName(required) — string — The .i domain nameownerAddress(required) — string — Owner wallet addressimageMode— string — Avatar visual style modewebsiteUrl— string — Decentralized or Web2 website URLsocialLinks— object — Key-value map of social usernames (twitter, github, telegram, farcaster, discord)profileImageCid— string — IPFS CID hash for custom avatar image
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_browse_listingsBrowse active .i domains listed on the decentralized secondary marketplace across Arbitrum One and satellite networks.
Parameters:
limit— number — Max number of listings to return (default 20)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_get_domain_detailsInspect full marketplace status for any .i domain: active listing, price history, highest offer, and bids.
Parameters:
domainName(required) — string — The .i domain name (e.g. "ai.i")
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
register_domainPrepare an unsigned on-chain transaction payload to permanently register a .i sovereign domain (0.001 ETH). Returns contract calldata, destination address, and value for user wallet signature.
Parameters:
domainName(required) — string — The .i domain name to register (e.g. "mybot.i")recipientAddress(required) — string — The 0x EVM wallet address that will own the domaintargetChainId— number — Network where registration/deposit is made: 42161 (Arbitrum One), 10 (Optimism), 1 (Ethereum), 4663 (Robinhood). Defaults to 42161.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_list_domainPrepare an unsigned transaction payload to list an owned .i domain for sale on the secondary marketplace. Requires owner wallet signature.
Parameters:
domainName(required) — string — The .i domain name to list for salesellerAddress(required) — string — The 0x seller address (must be current domain owner)priceInEth(required) — string — Listing price in ETH (e.g. "0.05")durationDays— number — Duration of listing in days (defaults to 30)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_buy_domainPrepare an unsigned payable transaction payload with ETH value to purchase an actively listed .i domain from the marketplace contract. Requires buyer wallet signature.
Parameters:
domainName(required) — string — The .i domain name to purchasebuyerAddress(required) — string — The 0x buyer address purchasing the domainpriceInEth— string — Optional expected purchase price in ETH for slippage protection
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_make_offerPrepare an unsigned transaction payload to submit an offer in ETH to purchase any registered .i domain. Requires buyer wallet signature.
Parameters:
domainName(required) — string — The .i domain name to make an offer onbuyerAddress(required) — string — The 0x buyer address making the offerofferPriceInEth(required) — string — Offer amount in ETH (e.g. "0.02")durationDays— number — Validity of offer in days (defaults to 7)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_accept_offerPrepare an unsigned atomic swap transaction payload accepting a buyer offer on your .i domain. Requires seller wallet signature.
Parameters:
domainName(required) — string — The .i domain name being soldsellerAddress(required) — string — The 0x seller address (current owner)buyerAddress(required) — string — The 0x buyer address whose offer is being accepted
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_cancel_listingPrepare an unsigned transaction payload to cancel an active marketplace listing. Requires seller wallet signature.
Parameters:
domainName(required) — string — The .i domain name to delistsellerAddress(required) — string — The 0x seller address who created the listing
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
marketplace_cancel_offerPrepare an unsigned transaction payload to cancel an active marketplace offer. Requires buyer wallet signature.
Parameters:
domainName(required) — string — The .i domain namebuyerAddress(required) — string — The 0x buyer address who submitted the offer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
transfer_domainPrepare an unsigned ERC-721 transferFrom transaction payload to transfer sovereign ownership of a .i domain to another 0x EVM wallet address. Requires owner wallet signature.
Parameters:
domainName(required) — string — The .i domain name to transfercurrentOwner(required) — string — The 0x address of the current domain ownernewOwner(required) — string — The 0x recipient address to receive domain ownership
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
bridge_domainPrepare an unsigned CCIP cross-chain bridge transaction payload to teleport a .i domain to another supported EVM chain. Requires owner wallet signature.
Parameters:
domainName(required) — string — The .i domain name to bridgeownerAddress(required) — string — The 0x owner address initiating the bridgedestinationChainId(required) — number — Target EVM chain ID: 42161 (Arbitrum One), 10 (OP Mainnet), 1 (Ethereum), 4663 (Robinhood)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
claim_escrow_refundPrepare an unsigned transaction payload to claim an eligible escrow refund from the Escrow contract. Requires claimant wallet signature.
Parameters:
escrowId(required) — string — The escrow deposit ID to refundclaimantAddress(required) — string — The 0x address eligible for the escrow refund
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_protocol_statsFetch live protocol metrics including total registered domains, active secondary marketplace listings, and cross-chain CCIP bridge health.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.