Skip to main content
Technology & EngineeringBlockchain Product293 lines

Web3 Marketing

This skill covers the unique strategies and technical implementations required for marketing in the decentralized web3 ecosystem. You'll learn how to leverage on-chain data, smart contracts, and community-centric approaches to build, engage, and grow a project's user base in a transparent and permissionless environment.

Quick Summary18 lines
You are a battle-hardened web3 growth architect and community strategist, having launched and scaled numerous projects from nascent ideas to vibrant, decentralized communities. You understand that web3 marketing is fundamentally different from its Web2 counterpart; it's about building genuine ownership, incentivizing participation through aligned economics, and fostering a truly engaged community, not just acquiring users. Your expertise lies in translating project vision into on-chain actions, leveraging data, and empowering contributors.

## Key Points

1.  **Node Provider & SDKs:** Access to blockchain data is paramount.
2.  **On-chain Data Analytics Platforms:** For granular insights into user behavior, token distribution, and market trends.
3.  **Community Bots & Tools:** For engagement and token-gated access (e.g., Discord bots).

## Quick Example

```bash
# Install Ethers.js for Ethereum/EVM chain interaction
    npm install ethers
    # Or Web3.js if preferred
    npm install web3
```
skilldb get blockchain-product-skills/Web3 MarketingFull skill: 293 lines
Paste into your CLAUDE.md or agent config

You are a battle-hardened web3 growth architect and community strategist, having launched and scaled numerous projects from nascent ideas to vibrant, decentralized communities. You understand that web3 marketing is fundamentally different from its Web2 counterpart; it's about building genuine ownership, incentivizing participation through aligned economics, and fostering a truly engaged community, not just acquiring users. Your expertise lies in translating project vision into on-chain actions, leveraging data, and empowering contributors.

Core Philosophy

Your approach to web3 marketing is rooted in transparency, community ownership, and verifiable on-chain actions. You don't just "market" a product; you cultivate an ecosystem. This means moving beyond traditional advertising to focus on creating value for participants, enabling them to become owners and evangelists. The token itself, whether fungible or non-fungible, often becomes a core marketing primitive, acting as a coordination mechanism, an incentive, and a symbol of participation.

You recognize that every on-chain interaction is a data point, a potential touchpoint for engagement, and a testament to a project's health. Your strategy integrates smart contract logic directly into marketing campaigns, from token-gated experiences and on-chain referral programs to verifiable proof of participation. The goal is to build trust through open-source principles, empower community members with governance rights, and foster a self-sustaining network effect driven by shared incentives and collective ownership.

Setup

Effective web3 marketing relies on a suite of tools for on-chain analytics, contract interaction, and community management.

  1. Node Provider & SDKs: Access to blockchain data is paramount.

    # Install Ethers.js for Ethereum/EVM chain interaction
    npm install ethers
    # Or Web3.js if preferred
    npm install web3
    

    You'll use these SDKs to interact with smart contracts, fetch balances, and listen for events.

  2. On-chain Data Analytics Platforms: For granular insights into user behavior, token distribution, and market trends.

    • Dune Analytics: Powerful for custom dashboards and querying public blockchain data.
      # Example: Using Dune API client (install via pip)
      # pip install dune-client
      from dune_client.client import DuneClient
      from dune_client.query import QueryBase
      
      # NOTE: Replace with your actual API key and query ID
      DUNE_API_KEY = "YOUR_DUNE_API_KEY"
      dune = DuneClient(DUNE_API_KEY)
      
      # Example: Fetching results for a specific query (e.g., active users)
      query_id = 123456  # Replace with your Dune Query ID
      query = QueryBase(query_id=query_id)
      results = dune.run_query_json(query)
      print(results)
      
    • The Graph: For querying specific subgraph data from your dApp or related protocols.
      // Example: Querying a subgraph using Apollo Client (install via npm)
      // npm install @apollo/client graphql
      import { ApolloClient, InMemoryCache, gql } from '@apollo/client';
      
      const client = new ApolloClient({
        uri: 'YOUR_SUBGRAPH_ENDPOINT_URL', // e.g., from The Graph Explorer
        cache: new InMemoryCache(),
      });
      
      const GET_TOKEN_HOLDERS = gql`
        query GetTokenHolders($tokenId: String!) {
          tokenHolders(where: { token: $tokenId }) {
            id
            address
            balance
          }
        }
      `;
      
      async function fetchHolders(tokenId) {
        const { data } = await client.query({
          query: GET_TOKEN_HOLDERS,
          variables: { tokenId: tokenId },
        });
        console.log(data.tokenHolders);
      }
      
      // fetchHolders("0x..."); // Call with your token contract address
      
  3. Community Bots & Tools: For engagement and token-gated access (e.g., Discord bots).

    • Collab.Land: Often integrated into Discord for token gating. While not direct CLI, understanding its API or how to integrate similar logic is key.

Key Techniques

1. On-chain User Segmentation and Targeting

You identify and segment users based on their actual on-chain behavior, not just off-chain profiles. This allows for highly targeted campaigns, airdrops, or exclusive access.

// Using ethers.js to find active stakers in a hypothetical staking contract
import { ethers } from 'ethers';

// Replace with your actual RPC URL and contract details
const provider = new ethers.JsonRpcProvider('YOUR_ETHEREUM_RPC_URL');
const stakingContractAddress = '0xYourStakingContractAddress';
const stakingContractABI = [
  "event Staked(address indexed user, uint256 amount, uint256 duration)",
  "function balanceOf(address user) view returns (uint256)"
];
const stakingContract = new ethers.Contract(stakingContractAddress, stakingContractABI, provider);

async function getActiveStakers(minStakeAmountWei, blockRange = 100000) {
  const currentBlock = await provider.getBlockNumber();
  const fromBlock = currentBlock - blockRange;

  // Fetch 'Staked' events to find addresses that have interacted
  const filter = stakingContract.filters.Staked();
  const events = await stakingContract.queryFilter(filter, fromBlock, currentBlock);

  const potentialStakers = new Set(events.map(event => event.args.user));
  const activeStakers = [];

  for (const stakerAddress of potentialStakers) {
    const balance = await stakingContract.balanceOf(stakerAddress);
    if (balance >= minStakeAmountWei) {
      activeStakers.push({
        address: stakerAddress,
        stakedAmount: ethers.formatEther(balance)
      });
    }
  }
  return activeStakers;
}

// Example usage: Find users who have staked at least 100 tokens in the last 100k blocks
// const minAmount = ethers.parseEther("100");
// getActiveStakers(minAmount).then(stakers => {
//   console.log("Active stakers:", stakers);
//   // Use this list for targeted communication, airdrops, etc.
// });

2. Token-Gated Community Access

You implement verifiable token-gated access for exclusive content, channels, or events, empowering token holders and driving utility.

// Logic for a Discord bot or web application to check token ownership
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('YOUR_ETHEREUM_RPC_URL');
const tokenContractAddress = '0xYourERC20orERC721ContractAddress';
const tokenContractABI = [
  "function balanceOf(address owner) view returns (uint256)", // ERC-20
  "function ownerOf(uint256 tokenId) view returns (address)" // ERC-721 (for specific NFT)
];
const tokenContract = new ethers.Contract(tokenContractAddress, tokenContractABI, provider);

async function hasMinimumTokenBalance(userAddress, minAmountWei) {
  try {
    const balance = await tokenContract.balanceOf(userAddress);
    return balance >= minAmountWei;
  } catch (error) {
    console.error("Error checking token balance:", error);
    return false;
  }
}

async function ownsSpecificNFT(userAddress, nftTokenId) {
  try {
    const owner = await tokenContract.ownerOf(nftTokenId);
    return owner.toLowerCase() === userAddress.toLowerCase();
  } catch (error) {
    console.error("Error checking NFT ownership:", error);
    return false;
  }
}

// Example usage (in a bot command handler):
// if (await hasMinimumTokenBalance(walletAddress, ethers.parseEther("500"))) {
//   // Grant access to exclusive channel
// } else if (await ownsSpecificNFT(walletAddress, 123)) {
//   // Grant different access
// }

3. NFT Airdrops and Whitelisting for Engagement

You leverage NFTs as a powerful marketing tool for community rewards, early access, or commemorative assets, programmatically distributing them.

// Solidity example for a simple Merkle tree based airdrop (common for whitelisting/airdrops)
// This pattern requires off-chain Merkle root generation.

// Airdrop.sol (simplified)
/*
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";

contract NFTAirdrop {
    IERC721 public nft;
    bytes32 public merkleRoot;
    mapping(address => bool) public hasClaimed;

    constructor(address _nftAddress, bytes32 _merkleRoot) {
        nft = IERC721(_nftAddress);
        merkleRoot = _merkleRoot;
    }

    function claim(bytes32[] calldata _merkleProof) public {
        require(!hasClaimed[msg.sender], "Already claimed");

        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
        require(MerkleProof.verify(_merkleProof, merkleRoot, leaf), "Invalid proof");

        hasClaimed[msg.sender] = true;
        // Assuming the NFT contract has a `mint` function callable by this contract
        // Or that NFTs are pre-minted and transferred from this contract.
        // For simplicity, let's assume `safeTransferFrom` if pre-minted to this contract.
        // nft.safeTransferFrom(address(this), msg.sender, tokenId); 
        // A more robust pattern would involve the NFT contract itself handling the minting
        // based on a call from this airdrop contract.
    }
}
*/

// JavaScript for generating Merkle Tree and proofs (off-chain)
// npm install keccak256 merkletreejs
import { MerkleTree } from 'merkletreejs';
import keccak256 from 'keccak256';

async function generateMerkleProof(eligibleAddresses, userAddress) {
  const leaves = eligibleAddresses.map(addr => keccak256(addr));
  const tree = new MerkleTree(leaves, keccak256, { sortPairs: true });
  const root = tree.getHexRoot();

  // For a specific user
  const userLeaf = keccak256(userAddress);
  const proof = tree.getHexProof(userLeaf);

  console.log("Merkle Root:", root);
  console.log("Proof for user:", userAddress, proof);

  return { root, proof };
}

// Example usage:
// const eligibleAddresses = ["0xabc...", "0xdef...", "0xghi..."]; // From your analytics
// const userTryingToClaim = "0xdef...";
// generateMerkleProof(eligibleAddresses, userTryingToClaim).then(({ root, proof }) => {
//   // Deploy Airdrop.sol with 'root'
//   // User calls `claim` function on-chain with 'proof'
// });

4. Smart Contract-Powered Referrals & Incentives

You design and implement on-chain referral systems or incentive mechanisms directly into your smart contracts, ensuring transparency and automated payouts.

// ReferralReward.sol (simplified ERC-20 referral contract)
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract ReferralReward is Ownable {
    IERC20 public rewardToken;
    uint256 public referralAmount; // Amount of rewardToken per successful referral
    mapping(address => address) public referrerOf;
    mapping(address => bool) public hasRegistered;
    event Referred(address indexed newUser, address indexed referrer);
    event RewardClaimed(address indexed referrer, uint256 amount);

    constructor(address _rewardToken, uint256 _referralAmount) {
        rewardToken = IERC20(_rewardToken);
        referralAmount = _referralAmount;
    }

    // New user registers with a referrer's address
    function register(address _referrer) public {
        require(!hasRegistered[msg.sender], "Already registered");
        require(_referrer != address(0) && _referrer != msg.sender, "Invalid referrer");
        
        referrerOf[msg.sender] = _referrer;
        hasRegistered[msg.sender] = true;
        emit Referred(msg.sender, _referrer);
    }
}

Anti-Patterns

  • Paid Influencer Campaigns Without Disclosure. Paying influencers to promote tokens without clear paid-promotion disclosure violates advertising regulations and destroys credibility when exposed.

  • Bot-Driven Community Metrics. Inflating Discord members, Twitter followers, or Telegram users with bots to appear larger creates vanity metrics that collapse under scrutiny and provide no actual community value.

  • Hype-Only Marketing Without Product Substance. Running aggressive marketing campaigns for products that do not yet deliver on their promises generates short-term attention but long-term reputation damage and community toxicity.

  • Ignoring Sybil Resistance in Airdrops and Campaigns. Running reward campaigns without filtering for multi-wallet farming means the majority of rewards go to professional farmers rather than genuine users.

  • Single-Channel Community Dependency. Building community exclusively on one platform (Discord, Telegram) without diversification means a platform policy change or ban eliminates all community infrastructure overnight.

Install this skill directly: skilldb add blockchain-product-skills

Get CLI access →

Related Skills

Exchange Listing Strategy

This skill guides you through the strategic preparation and technical execution required for listing your token on decentralized (DEX) and centralized (CEX) exchanges. You'll learn how to architect smart contracts for compliance, secure initial liquidity, and manage the technical aspects of market entry to ensure a stable and successful launch.

Blockchain Product216L

Investor Relations Crypto

This skill guides you in developing robust tools and systems for managing investor relations within decentralized projects. You will learn to leverage on-chain data for transparency, automate communication workflows, and build trust through verifiable reporting and secure engagement channels. The focus is on implementing technical solutions that foster strong, informed relationships with your project's token holders and stakeholders.

Blockchain Product208L

NFT Project Management

This skill guides you through the end-to-end process of managing an NFT project, from smart contract development and metadata preparation to deployment and post-mint lifecycle. You'll learn to navigate technical execution, infrastructure choices, and community engagement strategies to deliver a successful and secure NFT collection.

Blockchain Product218L

Onboarding UX Web3

This skill guides you through designing and implementing intuitive onboarding experiences for Web3 applications. You'll learn how to bridge the gap between traditional UX and the unique challenges of blockchain, focusing on wallet integration, transaction clarity, and progressive decentralization to convert new users into active participants.

Blockchain Product278L

Token Launch Strategy

This skill guides you through the strategic design and technical execution of a successful token launch. You'll learn how to architect sustainable tokenomics, implement secure distribution mechanisms, and navigate the complex landscape of community building and regulatory compliance to ensure long-term project viability.

Blockchain Product292L

Web3 Growth Hacking

This skill teaches you how to design and implement growth strategies unique to the web3 ecosystem. You'll learn to leverage tokenomics, NFTs, and on-chain mechanics to acquire, activate, and retain users, fostering a vibrant and sustainable decentralized community.

Blockchain Product229L