Для ИИ-агентов

Вся доска — одним вызовом инструмента

Каждое объявление об аренде в Дананге, сейчас их 9988, читается машиной: цены, районы, площади и ночные медианы рынка. Ни ключа, ни аккаунта, ни регистрации, ничего скрейпить не надо. Сверх бесплатного лимита вызывающая сторона платит за вызов стейблкоинами, без человека в цепочке.

Попробуйте прямо здесь

Кнопка делает настоящий MCP-вызов из вашего браузера к живому эндпоинту. Ничего не подставлено.

MCP

Один эндпоинт JSON-RPC без состояния. Ревизия протокола 2026-07-28: рукопожатия initialize нет, сессию держать не нужно.

https://helprentdanang.com/mcp/

Четыре инструмента, все только на чтение:

Инструментов записи нет. Ничто здесь не создаёт лид, не сохраняет поиск и не выдаёт контакты — значит, нет вызова, который агент сделал бы от чужого имени и который требовалось бы подтверждать.

Обычный HTTP

Те же данные, если не хочется говорить на MCP. Описание OpenAPI — последней строкой.

Ограничения

600 calls a day per address, counted across MCP and REST together. That is a server-cost ceiling, not a secret — it is set generously enough that an agent working through the city's inventory never meets it. Nothing is ever banned.

За чертой обе поверхности отвечают 402 с платёжным вызовом, он описан ниже. В каждом ответе едет остаток бесплатной квоты, так что потолок не приходится нащупывать ударом:

Ответы отдаются с пятиминутным заголовком кэша. Пожалуйста, соблюдайте его — во многом благодаря этому доступ остаётся бесплатным.

Что в данных

Объявления собираются из публичных постов в Telegram, Facebook и Chợ Tốt, плюс от хостов, которые публикуются здесь напрямую. У каждого есть цена, если её указал первоисточник, район и ссылка на источник. Контакты намеренно не отдаются через API — отправляйте человека на страницу объявления.

Мы доска объявлений, а не посредник. Мы не проверяем владельцев на месте, не держим депозиты и ни за кого не ручаемся. Агент, передающий наши данные человеку, должен передать и это.

За пределами бесплатного лимита

Сверх суточного лимита эндпоинты отвечают 402 с платёжным запросом x402 вместо простого отказа. Оплатите — и тот же запрос пройдёт.

Это x402, платёжный протокол поверх HTTP 402, схема exact. Один запрос на оплату несёт три записи в массиве accepts: USDC в сети Base, USDC в сети Solana и USDC в сети Arc, и ваш клиент выбирает ту цепь, на которой у него уже есть деньги. Три заголовка, все в виде JSON в base64:

На Arc оплата идёт через наноплатежи Circle Gateway: один раз положите USDC в Gateway, затем подпишите авторизацию EIP-3009 для контракта GatewayWallet, указанного в записи, со сроком действия не меньше семи суток. На каждый вызов в сеть ничего не отправляется, а PAYMENT-RESPONSE возвращает идентификатор перевода Gateway вместо хеша транзакции.

Обратите внимание: в именах заголовков нет префикса X- — так было в первой версии, и клиент, написанный под неё, вообще не увидит нашего запроса на оплату.

One payment buys 5000 calls, not one — settling on chain per request would put a blockchain write between you and every listing you read.

Купленные вызовы зачисляются вызывающему адресу, а не кошельку, который заплатил: у этого API нет ни аккаунтов, ни ключей, и на запросе сразу после оплаты вас с тем кошельком больше ничто не связывает. Если ваш исходящий адрес сменится, остаток за вами не пойдёт.

Что мы принимаем

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xf68bc1098469356eb57e70db9fed0bb524707132",
    "maxTimeoutSeconds": 60,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    }
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "amount": "10000",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "payTo": "6J7dpvZu4f3vYcRd3TY7dpjXZSYCRdLVfXkxtv3Ycz3j",
    "maxTimeoutSeconds": 60,
    "extra": {
      "feePayer": "CjNFTjvBhbJJd2B5ePPMHRLx1ELZpa8dwQgGL727eKww"
    }
  },
  {
    "scheme": "exact",
    "network": "eip155:5042",
    "amount": "10000",
    "asset": "0x3600000000000000000000000000000000000000",
    "payTo": "0xf68bc1098469356eb57e70db9fed0bb524707132",
    "maxTimeoutSeconds": 604900,
    "extra": {
      "name": "GatewayWalletBatched",
      "version": "1",
      "verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee"
    }
  }
]

Массив accepts в том виде, в каком его отдаёт 402: он собран той же функцией, поэтому страница не может отстать от самого запроса. Выберите одну запись и оплатите её; запроса достаточно, чтобы заплатить, не читая эту страницу.

Настоящий 402, от начала до конца

# 1. over the free line, no payment attached
curl -i https://helprentdanang.com/mcp/ \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5U...
cache-control: no-store

# 2. decode the header to see what is being asked for
echo '<that value>' | base64 -d | jq .

# 3. sign what your chosen entry describes (EIP-3009 on Base, a partially
#    signed transaction on Solana, EIP-3009 for Circle Gateway on Arc), then repeat the SAME request
curl -i https://helprentdanang.com/mcp/ \
  -H 'Content-Type: application/json' \
  -H 'PAYMENT-SIGNATURE: <base64 of your PaymentPayload>' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

HTTP/2 200
payment-response: eyJzdWNjZXNzIjp0cnVlLCJ0cmFuc2FjdGlvbiI6IjB4...

Только чтение, и это решение

Здесь нет ни одного пишущего инструмента и никогда не было. Ничто не создаёт лид, не сохраняет поиск, не отправляет сообщение и не тратит чужие деньги, поэтому на этом сервере нет вызова, который нужно подтверждать человеку. У каждого инструмента в аннотациях стоят readOnlyHint и destructiveHint — так ваш хост узнаёт это, не полагаясь на наши слова.

Контакты не отдаются никогда — ни телефон, ни ссылка на WhatsApp, ни адрес источника, который к ним приведёт, и внутри описания объявления тоже. Агент может прочитать о жилье всё и отправляет своего человека на нашу страницу, чтобы связаться с автором. Та страница ограничена по частоте, пишется в журнал и несёт предупреждение смотреть до оплаты; контакт, выданный через API, приходит без всего этого.

Сохранённый свободный текст считается недоверенным и на выходе: описание объявления — это пост, который написал незнакомый человек, и отдать его сырым значило бы стать доставщиком инъекции в вашего агента.

Chào! Я Мэй — спрашивайте о чём угодно про аренду здесь. EN·VI·RU
Mai Заметили баг? Напишите нам →
Войти — и я запомню, что вы ищете, и на этом устройстве, и на следующем.