Contract query
Check if a smart contract method returns specific values when called. Perfect for verifying custom onchain conditions, protocol holdings, or complex smart contract states.
Setting up Contract Query requirements:
In the role editor, click "Add requirements" and select Contract query
Fill out the parameters:
Select the Chain where your contract is deployed
Enter the Contract address you want to query
Choose the contract Method from the dropdown (Guild automatically fetches available methods from the contract ABI)
Fill in the Input parameters - Guild shows the exact fields needed with names, types, and indexes
Select Output to check - choose which return value from the contract method to verify
Output index - Smart contract methods can return multiple values. The index (0, 1, 2, etc.) specifies which returned value to check:
Index 0 = first returned value
Index 1 = second returned value
Index 2 = third returned value, and so on
If a contract method returns
(uint256 balance, address owner, bool isActive)
, you would:Use index 0 to check the balance (bigint)
Use index 1 to check the owner address
Use index 2 to check if it's active (boolean)
Output types:
Output bigint - Large numbers (token balances, timestamps, counts, IDs)
Output address - Wallet addresses or contract addresses
Output boolean - True/false values (eligibility checks, status flags)
Add custom image and name for the requirement if you want
Click "Add requirement"
Members connect their wallet and Guild automatically calls the specified contract method with the configured parameters. If the contract returns the expected output value, the member qualifies for the role.
Last updated
Was this helpful?