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 auditor10,000 $ISNAD total across all attestations
Concentration capNo single auditor can have >33% of a resource's stake
Lock rangeMinimum 7 days, maximum 90 days