Интеграция с Guild.xyz (token-gated доступ)
Guild.xyz — протокол для управления доступом на основе on-chain условий. Держишь 100 токенов проекта — получаешь роль в Discord. Имеешь NFT определённой коллекции — попадаешь в закрытый Telegram канал. Логика проверяется автоматически, без ручного вайтлистинга.
Интеграция с Guild занимает 1-3 дня разработки в зависимости от сложности условий. Guild поддерживает сотни условий «из коробки»: ERC-20 balance, ERC-721 ownership, ERC-1155 balance, staking балансы в популярных протоколах, Snapshot голосование участие, POAP ownership.
Базовая настройка через Guild UI
Большинство кейсов решается через интерфейс Guild без единой строки кода:
- Создать Guild (привязать к Discord server или Telegram)
- Создать Role с conditions — например:
ERC-20 balance >= 500 [TOKEN_ADDRESS] on Ethereum - Guild предоставляет invite link — при переходе пользователь подключает кошелёк, Guild верифицирует условие и выдаёт роль
Поддерживаемые платформы: Discord, Telegram, GitHub (repository access), Google Workspace (Drive доступ), Notion. Для Discord — отдельный Guild bot с правами на управление ролями.
Кастомные условия через Guild API
Для нестандартных критериев Guild поддерживает кастомные условия через собственный API endpoint.
// Guild Custom Contract Check
// Пример: доступ только если пользователь выполнил >= 5 транзакций
// с конкретным контрактом
// 1. Деплоим верификационный контракт
contract ActivityChecker {
mapping(address => uint256) public interactionCount;
function checkEligibility(address user) external view returns (bool) {
return interactionCount[user] >= 5;
}
}
// 2. В Guild: тип условия "CONTRACT" с ABI
// {
// "type": "CONTRACT",
// "chain": "ETHEREUM",
// "address": "0x...",
// "abi": [...],
// "method": "checkEligibility",
// "params": ["{user_address}"],
// "returnIndex": 0,
// "expected": true
// }
Placeholder {user_address} автоматически подставляется Guild при проверке — верифицируемый кошелёк пользователя.
Compound conditions (AND/OR логика)
Guild поддерживает составные условия:
{
"logic": "AND",
"requirements": [
{
"type": "ERC20",
"address": "0xTokenAddress",
"chain": "POLYGON",
"data": { "minAmount": "100" }
},
{
"type": "ERC721",
"address": "0xNFTAddress",
"chain": "POLYGON"
}
]
}
Это покрывает большинство DAO кейсов: «владеет токеном И имеет membership NFT», «выполнил условие ИЛИ является ранним участником».
Интеграция через Guild SDK
import { createGuildClient } from "@guildxyz/sdk";
const guild = createGuildClient("my-app-name");
// Создание роли программно
const role = await guild.role.create(guildId, signer, {
name: "Token Holder",
requirements: [
{
type: "ERC20",
chain: "ETHEREUM",
address: tokenAddress,
data: { minAmount: "1000" }
}
]
});
// Проверка eligibility пользователя
const access = await guild.user.getMemberships(userAddress);
SDK удобен для динамического управления ролями: протокол может программно создавать или изменять условия доступа при изменении tokenomics или milestone-ов.
Типичные кейсы
DAO contributor access: члены DAO с достаточным балансом governance токена получают доступ к закрытым рабочим каналам Discord.
NFT community: holders NFT коллекции автоматически попадают в Telegram группу без ручного вайтлистинга.
Tiered benefits: разные роли для разных уровней баланса — Bronze (100+ tokens), Silver (1000+ tokens), Gold (10000+ tokens).
Cross-chain membership: условие проверяется на нескольких цепях одновременно — токен на Ethereum ИЛИ NFT на Polygon.
Интеграция с Guild экономит недели разработки кастомного access control. Для большинства проектов это правильный выбор — если только не нужна полная кастомизация UX или хранение данных о членстве полностью on-chain.







