Інтеграція з Guild.xyz (token-gated доступ)
Guild.xyz — протокол для управління доступом на основі on-chain умов. Маєш 100 токенів проекту — отримаєш роль у Discord. Володієш NFT певної колекції — потрапляєш до закритого Telegram каналу. Логіка перевіряється автоматично, без ручного вайтлістингу.
Інтеграція з Guild займає 1-3 дні розробки залежно від складності умов. Guild підтримує сотні умов з коробки: ERC-20 баланс, ERC-721 власність, ERC-1155 баланс, staking баланси у популярних протоколах, участь у Snapshot голосуванні, POAP власність.
Базова настройка через Guild UI
Більшість кейсів вирішуються через інтерфейс Guild без жодного рядка коду:
- Створити Guild (прив'язати до Discord сервера або Telegram)
- Створити Role з умовами — наприклад:
ERC-20 balance >= 500 [TOKEN_ADDRESS] on Ethereum - Guild надає invite link — при переході користувач підключає кошелек, Guild перевіряє умову та видає роль
Підтримувані платформи: Discord, Telegram, GitHub (доступ до репозиторію), Google Workspace (доступ до Drive), Notion. Для Discord — окремий Guild бот з правами управління ролями.
Кастомні умови через 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
// }
Плейсхолдер {user_address} автоматично підставляється Guild під час перевірки — верифікований кошелек користувача.
Складні умови (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" }
}
]
});
// Перевірка відповідності користувача
const access = await guild.user.getMemberships(userAddress);
SDK зручний для динамічного управління ролями: протокол може програмно створювати або змінювати умови доступу при зміні tokenomics або milestone-ів.
Типові кейси
DAO contributor access: члени DAO з достатнім балансом governance токену отримують доступ до закритих робочих каналів Discord.
NFT community: власники NFT колекції автоматично потрапляють до Telegram групи без ручного вайтлістингу.
Tiered benefits: різні ролі для різних рівнів балансу — Bronze (100+ токенів), Silver (1000+ токенів), Gold (10000+ токенів).
Cross-chain membership: умова перевіряється на декількох блокчейнах одночасно — токен на Ethereum АБО NFT на Polygon.
Інтеграція з Guild економить тижні розробки кастомного access control. Для більшості проектів це правильний вибір — якщо тільки не потрібна повна кастомізація UX або зберігання даних про членство повністю on-chain.







