Staking Guide
Step-by-step guide to staking $ISNAD and creating attestations.
Prerequisites
- $ISNAD tokens in your wallet
- ETH for gas fees on Base
- Wallet connected (MetaMask, WalletConnect, etc.)
Step 1: Find a Resource
Use the Trust Checker to find resources that need attestations. Look for resources with low or no stake that you're confident are safe.
Step 2: Review the Code
This is critical. Before staking, thoroughly review:
- Source code for malicious patterns
- External API calls and data exfiltration
- Permission requests and capability requirements
- Dependencies and their safety
Step 3: Approve Token Spend
Before staking, approve the staking contract to spend your tokens:
01// Approve staking contract
02await isnadToken.approve(STAKING_ADDRESS, amount);
Step 4: Create Attestation
Call the stake function with resource hash, amount, and lock duration:
01await staking.stake(
02 resourceHash, // bytes32
03 amount, // uint256 (in wei)
04 lockDuration // uint256 (seconds, 30-90 days)
05);
Step 5: Monitor & Unstake
After your lock period expires, you can withdraw your stake plus earned yield:
01// Unstake after lock expires
02await staking.unstake(attestationId);
03
04// Claim rewards from pool
05await rewardPool.claimRewards();
Staking Limits
| Max per auditor | 10,000 $ISNAD total across all attestations |
| Concentration cap | No single auditor can have >33% of a resource's stake |
| Lock range | Minimum 7 days, maximum 90 days |