Skip to main content

Base Configuration

All feature configurations extend BaseX404Config:
interface BaseX404Config {
  wallet?: string; // Optional - if not provided, modal will be shown
  geo_code: string;
  geo_code_locs: string;
  coords: {
    latitude: number | null;
    longitude: number | null;
  };
}

Feature Configurations

X404BlacklistConfig

interface X404BlacklistConfig extends BaseX404Config {
  excluded_mints: string[];
  max_holdings?: Record<string, string>;
}

X404TimeLockConfig

interface X404TimeLockConfig extends BaseX404Config {
  required_mint: string;
  mint_amount: string;
  min_hold_duration_days: number;
}

X404MultiTokenConfig

interface X404MultiTokenConfig extends BaseX404Config {
  required_tokens: Array<{ mint: string; amount: string }>;
  verification_mode: "ALL" | "ANY";
}

X404ActivityConfig

interface X404ActivityConfig extends BaseX404Config {
  min_transactions: number;
  min_volume: string;
  time_period_days: number;
  transaction_types: string[];
}

X404TierConfig

interface X404TierConfig extends BaseX404Config {
  tier_config: {
    bronze?: { mint: string; amount: string };
    silver?: { mint: string; amount: string };
    gold?: { mint: string; amount: string };
  };
}

X404NoDebtConfig

interface X404NoDebtConfig extends BaseX404Config {
  check_protocols: string[];
  max_debt_allowed: string;
}

X404AgeConfig

interface X404AgeConfig extends BaseX404Config {
  min_wallet_age_days: number;
  min_first_transaction_days: number;
}

Usage

import type {
  X404BlacklistConfig,
  X404TimeLockConfig,
  X404MultiTokenConfig,
  X404ActivityConfig,
  X404TierConfig,
  X404NoDebtConfig,
  X404AgeConfig,
} from "magenx404";

const blacklistConfig: X404BlacklistConfig = {
  excluded_mints: ["token_address"],
  max_holdings: {},
  geo_code: "false",
  geo_code_locs: "",
  coords: { latitude: null, longitude: null },
};