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 (Base Sepolia testnet)

ContractAddress
GalxeIntegration0xFFeF9627BDA5C966a70C839E340CF9bB4D63f08E
VaultManager0xDde0abb5Fd46C6CA2CC8A85563213ca6BF66A6Df
StrategyRegistry0x3B7CF2663B5155c904E1E325B03b6498C3780e00
GovernanceManager0x7c5D1dD662caf8C1934b70237f86bAAc08AD5FB7
NodeRegistry0x1F236Ea17338937f7f4005013E346F7cC216A16E
TrustFingerprint0xD000CbF56411fC82e87d13aBaa9a8310e816F88C

These contracts are deployed on the Base Sepolia testnet (Base L2) and are part of the 15 contracts verified on Basescan. The addresses above are the subset relevant to Galxe credential verification.

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 Base Sepolia testnet
    • 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_valid
    • 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 0.30 (on the 0-1 trust scale) for advanced tasks
  • Wallet Age - First transaction at least 7 days ago
  • Transaction History - Minimum 5 transactions

Testing

Testnet Verification

Before mainnet launch (Q3 2027), test all credentials on the Base Sepolia testnet:

  1. Deploy contracts to the Base Sepolia testnet
  2. Configure Galxe credentials with Base Sepolia 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 ""