Galxe Integration

This document provides technical details on how Noderr integrates with Galxe for The Noderr Odyssey campaign.

Overview

Galxe is a Web3 credential and campaign platform that enables projects to run quests, verify on-chain actions, and distribute rewards. Noderr uses Galxe's infrastructure for:

  • Task Verification - Verifying user actions both on-chain and off-chain
  • Credential Issuance - Issuing OATs (On-chain Achievement Tokens)
  • Leaderboard Management - Tracking and displaying participant rankings
  • Airdrop Distribution - Using Galxe's Earndrop feature for token distribution

Credential Types

Contract Query Credentials

These credentials verify on-chain actions by querying Noderr smart contracts.

CredentialContractFunction
Has DepositedVaultManagerhasDeposited(address, uint256)
Owns Genesis NFTGalxeIntegrationownsAnyGenesisNFT(address)
Has Submitted StrategyStrategyRegistryhasSubmittedStrategy(address)
Has VotedGovernanceManagerhasVotedOnAnyProposal(address)
Is Running NodeNodeRegistryisRegistered(address)
TrustFingerprint Score CheckTrustFingerprintgetScore(address)

API Credentials

These credentials verify off-chain actions via Noderr's API.

CredentialEndpointDescription
Discord Joined/api/galxe/verify/discordVerifies Discord membership
Twitter Followed/api/galxe/verify/twitterVerifies Twitter follow
Tutorial Completed/api/galxe/verify/tutorialVerifies onboarding completion
Strategy Draft/api/galxe/verify/strategy-draftVerifies draft strategy submission
Referral Count/api/galxe/verify/referralsVerifies referral milestones

Smart Contract Functions

GalxeIntegration.sol

The GalxeIntegration contract aggregates verification functions across all Noderr contracts:

// Chapter 1: Genesis
function hasUsedFaucetCredential(address user) external view returns (bool);
function ownsAnyGenesisNFT(address user) external view returns (bool);
function ownsGenesisNFTTier(address user, uint8 tier) external view returns (bool);
// Chapter 2: Vaults
function hasDeposited(address user) external view returns (bool);
function hasDepositedMinAmount(address user, uint256 minAmount) external view returns (bool);
// Chapter 3: Strategists
function hasSubmittedAnyStrategy(address user) external view returns (bool);
function hasLiveStrategy(address user) external view returns (bool);
// Chapter 4: Governors
function hasVotedOnAnyProposal(address user) external view returns (bool);
function isGuardian(address user) external view returns (bool);
function isOracle(address user) external view returns (bool);
// Chapter 5: Nexus
function isRunningNode(address user) external view returns (bool);
function hasNodeOfMinTier(address user, uint8 minTier) external view returns (bool);
// Comprehensive
function getComprehensiveStats(address user) external view returns (
bool hasUsedFaucet,
uint8 highestNFTTier,
bool hasDeposited,
uint256 depositAmount,
bool hasStrategy,
bool hasLiveStrategy,
bool hasVoted,
bool isNodeOperator,
uint8 nodeTier,
uint256 trustScore
);

Contract Addresses (Testnet)

ContractAddress
GalxeIntegration0xFFeF9627BDA5C966a70C839E340CF9bB4D63f08E
VaultManager0xDde0abb5Fd46C6CA2CC8A85563213ca6BF66A6Df
StrategyRegistry0x3B7CF2663B5155c904E1E325B03b6498C3780e00
GovernanceManager0x83f8254C25aEa57217CD1A6Aa03DFa06d6816156
NodeRegistry0x1F236Ea17338937f7f4005013E346F7cC216A16E
TrustFingerprint0xFf3BFD4eDC994d54B2adD3b315281590a50a9d95

API Endpoints

Base URL

https://dapp.noderr.xyz/api/trpc/galxe

Galxe credential endpoints are served via tRPC from the main dApp server. The full path for each procedure is https://dapp.noderr.xyz/api/trpc/galxe.{procedureName}.

Authentication

Read endpoints are public. No authentication headers are required for Galxe credential verification calls.

Endpoints

Verify Discord Membership

GET https://dapp.noderr.xyz/api/trpc/galxe.verifyDiscordJoined?input={"address":"0x..."}

Response:

{
"is_valid": true,
"address": "0x..."
}

Verify Twitter Follow

GET https://dapp.noderr.xyz/api/trpc/galxe.verifyTwitterFollowed?input={"address":"0x..."}

Response:

{
"is_valid": true,
"address": "0x..."
}

Verify Tutorial Completion

GET https://dapp.noderr.xyz/api/trpc/galxe.verifyTutorialCompleted?input={"address":"0x..."}

Response:

{
"is_valid": true,
"address": "0x..."
}

Verify Referral Count

GET https://dapp.noderr.xyz/api/trpc/galxe.verifyReferralCount?input={"address":"0x..."}

Response:

{
"is_valid": true,
"address": "0x...",
"score": 5
}

Setting Up Galxe Credentials

Contract Query Credential Setup

  1. Go to Galxe Dashboard → Credentials → Create Credential
  2. Select "Contract Query" type
  3. Configure:
    • Chain: Select testnet chain
    • Contract Address: Enter GalxeIntegration address
    • Function: Select the verification function
    • Parameters: Configure address parameter
    • Expected Result: Set to true or specific value

API Credential Setup

  1. Go to Galxe Dashboard → Credentials → Create Credential
  2. Select "API" type
  3. Configure:
    • Endpoint URL: Enter Noderr API endpoint
    • Method: GET
    • Headers: Add any required headers
    • Response Path: $.is_eligible
    • Expected Value: true

Sybil Prevention

Galxe credentials include built-in sybil prevention:

  • Galxe Web3 Score - Minimum score of 20 required
  • Twitter Account Age - Minimum 30 days
  • Twitter Followers - Minimum 10 followers
  • Unique Device Fingerprint - One account per device

Additional Noderr-specific checks:

  • TrustFingerprint Score - Minimum 30% for advanced tasks
  • Wallet Age - First transaction at least 7 days ago
  • Transaction History - Minimum 5 transactions

Testing

Testnet Verification

Before mainnet launch, test all credentials on testnet:

  1. Deploy contracts to testnet
  2. Configure Galxe credentials with testnet addresses
  3. Complete all tasks with test wallets
  4. Verify credentials trigger correctly
  5. Test bulk verification endpoints

API Testing

# Test Discord verification
curl "https://dapp.noderr.xyz/api/trpc/galxe.verifyDiscordJoined?input=%7B%22address%22%3A%220x...%22%7D"# Test Twitter follow verification
curl "https://dapp.noderr.xyz/api/trpc/galxe.verifyTwitterFollowed?input=%7B%22address%22%3A%220x...%22%7D"

Troubleshooting

Credential Not Verifying

  1. Check contract address is correct
  2. Verify function signature matches
  3. Ensure user has completed the action
  4. Check chain ID is correct

API Errors

  1. Verify endpoint URL is accessible
  2. Check authentication headers
  3. Review response format matches expected schema
  4. Check rate limits

Support

For Galxe integration issues:

results matching ""

    No results matching ""