Cara Mendapatkan API Key Rugcheck dan Menggunakan Rugcheck API

Mark Ponomarev

Mark Ponomarev

4 June 2025

Cara Mendapatkan API Key Rugcheck dan Menggunakan Rugcheck API

Lanskap mata uang kripto penuh dengan peluang, tetapi juga dengan risiko signifikan. Rug pull dan token yang dirancang buruk dapat menyebabkan kerugian besar. Rugcheck.xyz menyediakan layanan penting dengan menganalisis proyek kripto untuk mencari potensi tanda bahaya. API-nya memungkinkan pengembang, trader, dan analis untuk mengakses wawasan ini secara terprogram, mengotomatiskan dan meningkatkan upaya uji tuntas mereka. Panduan ini akan sangat berfokus pada cara menggunakan API Rugcheck.xyz, membekali Anda dengan contoh-contoh praktis menggunakan Python.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda agar dapat bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Gambaran Singkat Rugcheck.xyz dan API-nya

Apa itu Rugcheck.xyz?

Rugcheck.xyz adalah platform yang dirancang untuk meneliti token mata uang kripto dan smart contract untuk mencari tanda-tanda niat jahat (seperti rug pull atau honeypot) atau risiko bawaan. Platform ini memeriksa kode kontrak, likuiditas, tokenomics, dompet pengembang, dan lainnya, menyediakan penilaian risiko dan laporan terperinci.

Mengapa Menggunakan API?

API memberikan akses terprogram ke mesin analitik Rugcheck.xyz, memungkinkan:

Mendapatkan Kunci API Rugcheck.xyz Anda – Hal Penting

Untuk menggunakan API, Anda memerlukan kunci API. Dokumentasi API Rugcheck.xyz (https://api.rugcheck.xyz/swagger/index.html) menyiratkan adanya sistem akun pengguna untuk manajemen kunci melalui endpoint seperti /user/api-keys.

  1. Daftar/Masuk: Kunjungi situs web utama Rugcheck.xyz dan buat akun atau masuk.
  2. Temukan Pengaturan API: Cari bagian "API", "Pengembang", atau "Kunci API" di dasbor pengguna Anda.
  3. Buat Kunci: Buat kunci API baru. Anda mungkin dapat memberinya nama untuk identifikasi yang lebih mudah.
  4. Amankan Kunci Anda: Salin kunci yang dihasilkan dan simpan dengan aman (misalnya, pengelola kata sandi, variabel lingkungan). Jangan pernah mengeksposnya di repositori kode publik atau aplikasi sisi klien.

Semua permintaan API memerlukan kunci ini untuk dikirim di header X-API-KEY.

Sebelum masuk ke kode, berikut adalah beberapa endpoint utama yang akan kita gunakan (lihat dokumen Swagger untuk detail lengkap):

Base URL untuk semua permintaan adalah: https://api.rugcheck.xyz

Cara Menggunakan API Rugcheck.xyz: Contoh Python Mendalam

Di sinilah kita menjadi praktis. Kita akan menggunakan Python dengan library requests.

Prasyarat:

1. Setup dan Fungsi Panggilan API Inti

Pertama, mari kita siapkan lingkungan kita dan buat fungsi yang dapat digunakan kembali untuk menangani panggilan API. Praktik terbaik adalah menyimpan kunci API Anda sebagai variabel lingkungan.Python

import requests
import json
import os

# Load API key from environment variable for security
API_KEY = os.getenv('RUGCHECK_API_KEY')
BASE_URL = "https://api.rugcheck.xyz"

if not API_KEY:
    print("Error: RUGCHECK_API_KEY environment variable not set.")
    # You might want to exit or raise an exception here in a real application
    # For demonstration, we'll allow it to proceed but calls will fail.
    # API_KEY = "YOUR_FALLBACK_API_KEY_FOR_TESTING_ONLY" # Not recommended for actual use

HEADERS = {
    "X-API-KEY": API_KEY,
    "Accept": "application/json" # Good practice to specify accepted response type
}

def make_api_request(endpoint, params=None):
    """
    Makes a GET request to the Rugcheck.xyz API.
    
    Args:
        endpoint (str): The API endpoint path (e.g., "/utils/chains").
        params (dict, optional): Query parameters for the request.
        
    Returns:
        dict or None: The JSON response as a Python dictionary, or None if an error occurs.
    """
    if not API_KEY or API_KEY == "YOUR_FALLBACK_API_KEY_FOR_TESTING_ONLY":
        print("Error: API Key is not properly configured.")
        return None
        
    url = f"{BASE_URL}{endpoint}"
    try:
        response = requests.get(url, headers=HEADERS, params=params, timeout=30) # 30-second timeout
        response.raise_for_status()  # Raises HTTPError for bad responses (4xx or 5xx)
        return response.json()
    except requests.exceptions.HTTPError as http_err:
        print(f"HTTP error occurred: {http_err}")
        print(f"Status Code: {response.status_code}")
        try:
            # Try to print error details from API if available in JSON
            print(f"Error Response: {response.json()}")
        except json.JSONDecodeError:
            print(f"Error Response (not JSON): {response.text}")
    except requests.exceptions.ConnectionError as conn_err:
        print(f"Connection error occurred: {conn_err}")
    except requests.exceptions.Timeout as timeout_err:
        print(f"Timeout error occurred: {timeout_err}")
    except requests.exceptions.RequestException as req_err:
        print(f"An unexpected error occurred with the request: {req_err}")
    except json.JSONDecodeError: # If response.json() fails for non-HTTPError cases
        print("Failed to decode JSON response from API.")
        print(f"Response content: {response.text if 'response' in locals() else 'No response object'}")
    return None

Penting: Agar contoh-contoh berikut berjalan, pastikan RUGCHECK_API_KEY diatur dalam lingkungan Anda. Anda juga memerlukan alamat kontrak dan alamat dompet yang valid untuk chain yang sesuai.

2. Contoh 1: Analisis Mendalam Pemindaian Token (/tokens/scan/{chain}/{contractAddress})

Ini adalah salah satu endpoint yang paling kuat. Mari kita pindai token dan bedah responsnya.Python

def get_token_scan_details(chain, contract_address, include_dex=True, include_events=False):
    """
    Scans a token and prints detailed information.
    """
    print(f"\n--- Scanning Token: {contract_address} on {chain} ---")
    endpoint = f"/tokens/scan/{chain}/{contract_address}"
    params = {
        "includeDexScreenerData": str(include_dex).lower(), # API expects string "true" or "false"
        "includeSignificantEvents": str(include_events).lower()
    }
    
    data = make_api_request(endpoint, params=params)
    
    if data:
        print(f"Scan ID: {data.get('id')}")
        print(f"Risk Level: {data.get('riskLevel')}")
        
        trust_score_data = data.get('trustScore', {})
        print(f"Trust Score: {trust_score_data.get('value')} ({trust_score_data.get('rating')})")

        print("\nScams Found:")
        scams = data.get('scams', [])
        if scams:
            for scam in scams:
                print(f"  - Type: {scam.get('type')}, Severity: {scam.get('severity')}, Message: {scam.get('message')}")
        else:
            print("  No specific scam indicators found by this scan.")

        print("\nWarnings:")
        warnings = data.get('warnings', [])
        if warnings:
            for warning in warnings:
                print(f"  - Type: {warning.get('type')}, Severity: {warning.get('severity')}, Message: {warning.get('message')}")
        else:
            print("  No warnings found by this scan.")

        contract_details = data.get('contractDetails', {})
        print("\nContract Details:")
        print(f"  Name: {contract_details.get('name')}")
        print(f"  Symbol: {contract_details.get('symbol')}")
        print(f"  Decimals: {contract_details.get('decimals')}")
        print(f"  Owner: {contract_details.get('ownerAddress')}")
        print(f"  Creator: {contract_details.get('creatorAddress')}")
        print(f"  Verified: {contract_details.get('isVerified')}")
        if contract_details.get('isProxy'):
            print(f"  Proxy Implementation: {contract_details.get('proxyImplementationAddress')}")
        
        taxes = data.get('taxes', {})
        print("\nTaxes:")
        print(f"  Buy Tax: {taxes.get('buyTax')}%")
        print(f"  Sell Tax: {taxes.get('sellTax')}%")
        print(f"  Transfer Tax: {taxes.get('transferTax')}%")
        if taxes.get('isBuyTaxModifiable') or taxes.get('isSellTaxModifiable') or taxes.get('isTransferTaxModifiable'):
            print("  Warning: One or more taxes may be modifiable.")

        liquidity = data.get('liquidityDetails', {})
        print("\nLiquidity Details:")
        if liquidity.get('dexes'):
            for dex in liquidity['dexes']:
                print(f"  DEX: {dex.get('name')} ({dex.get('pairAddress')})")
                print(f"    Liquidity: {dex.get('liquidityAmountInUsd')} USD")
                print(f"    Total LP Supply: {dex.get('totalSupply')}")
                if dex.get('locks'):
                    for lock in dex['locks']:
                        print(f"      Lock: Amount {lock.get('amountLocked')} until {lock.get('unlockDate')}, Vendor: {lock.get('vendorName')}")
                else:
                    print("      No explicit LP locks found for this DEX.")
        else:
            print("  No DEX liquidity information found.")
            
        holder_analysis = data.get('holderAnalysis', {})
        print("\nHolder Analysis:")
        print(f"  Holder Count: {holder_analysis.get('holderCount')}")
        if holder_analysis.get('topHolders'):
            print("  Top Holders:")
            for i, holder in enumerate(holder_analysis['topHolders'][:3]): # Display top 3 for brevity
                print(f"    {i+1}. Address: {holder.get('address')}, Balance: {holder.get('balance')}, % Supply: {holder.get('percentage')}%")
        
        if include_dex and 'dexScreenerData' in data and data['dexScreenerData']:
            dex_data = data['dexScreenerData']
            print("\nDEX Screener Data:")
            print(f"  Price (USD): {dex_data.get('priceUsd')}")
            print(f"  FDV (USD): {dex_data.get('fdv')}")
            print(f"  Volume (24h USD): {dex_data.get('volume', {}).get('h24')}")
            # Add more fields as needed
            
        # You can similarly process 'significantEvents' if include_events was True
        # print(json.dumps(data, indent=2)) # To print the full raw response for exploration
    else:
        print("Failed to retrieve token scan details.")

# --- Usage Example for Token Scan ---
# Replace with a valid contract address and chain from the supported list (e.g., 'bsc', 'ethereum')
# For BSC (BEP-20 tokens): e.g., WBNB contract "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
# For Ethereum (ERC-20 tokens): e.g., USDC contract "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
# test_chain = "bsc"
# test_contract = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" # WBNB on BSC (example)
# get_token_scan_details(test_chain, test_contract, include_dex=True)

Interpretasi Hasil Pemindaian:

3. Contoh 2: Mengambil Kode Sumber (/tokens/source-code/{chain}/{contractAddress})

Mengetahui apakah kontrak terverifikasi dan dapat memeriksa kode sumbernya sangat penting.Python

def get_token_source_code(chain, contract_address):
    """
    Retrieves and displays information about a token's source code.
    """
    print(f"\n--- Retrieving Source Code for: {contract_address} on {chain} ---")
    endpoint = f"/tokens/source-code/{chain}/{contract_address}"
    
    data = make_api_request(endpoint)
    
    if data:
        print(f"Contract Name: {data.get('contractName')}")
        print(f"Is Verified: {data.get('isVerified')}")
        
        if data.get('isVerified'):
            # The ABI can be very long, so just print a snippet or its presence
            print(f"ABI: {'Present' if data.get('abi') else 'Not available'}") 
            
            source_code = data.get('sourceCode')
            if isinstance(source_code, str):
                print(f"Source Code Snippet (first 500 chars):\n{source_code[:500]}...")
                # In a real app, you might save this to a file:
                # with open(f"{contract_address}_source.sol", "w") as f:
                # f.write(source_code)
                # print(f"Full source code saved to {contract_address}_source.sol")
            elif isinstance(source_code, dict): # For multi-file sources
                print("Source Code (multiple files):")
                for filename, content in source_code.items():
                    print(f"  File: {filename}, Snippet (first 200 chars): {content.get('content', '')[:200]}...")
            else:
                print("Source Code: Not available or unexpected format.")
        else:
            print("Contract source code is not verified or not available.")
    else:
        print("Failed to retrieve source code information.")

# --- Usage Example for Source Code ---
# test_chain_eth = "ethereum"
# usdc_contract_eth = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" # USDC on Ethereum (verified)
# get_token_source_code(test_chain_eth, usdc_contract_eth)

4. Contoh 3: Penilaian Risiko Dompet (/wallets/risk-rating/{chain}/{walletAddress})

Menganalisis dompet yang terkait dengan proyek (misalnya, dompet deployer, tim) dapat mengungkapkan risiko.Python

def get_wallet_risk_rating(chain, wallet_address):
    """
    Retrieves and displays the risk rating for a wallet.
    """
    print(f"\n--- Getting Risk Rating for Wallet: {wallet_address} on {chain} ---")
    endpoint = f"/wallets/risk-rating/{chain}/{wallet_address}"
    
    data = make_api_request(endpoint)
    
    if data:
        print(f"Overall Wallet Risk Level: {data.get('riskLevel')}")
        print(f"Summary: {data.get('summary')}")
        
        print("\nAssociated Tokens with Risk:")
        associated_tokens = data.get('associatedTokens', [])
        if associated_tokens:
            for token_info in associated_tokens:
                print(f"  - Token: {token_info.get('symbol')} ({token_info.get('contractAddress')})")
                print(f"    Chain: {token_info.get('chain')}")
                print(f"    Risk Level: {token_info.get('riskLevel')}")
                print(f"    Role: {token_info.get('roleInTokenContext')} (e.g., Deployer, Owner)")
        else:
            print("  No associated tokens with notable risk found linked to this wallet by the scan.")
            
        # Other fields like 'activitySummary', 'knownAssociations' could also be parsed.
        # print(json.dumps(data, indent=2)) # For full response
    else:
        print("Failed to retrieve wallet risk rating.")

# --- Usage Example for Wallet Risk Rating ---
# Replace with a real wallet address and chain
# Example: A deployer wallet address you are investigating
# test_wallet_chain = "bsc"
# test_wallet_address = "0x000000000000000000000000000000000000dead" # Example, use a real one
# get_wallet_risk_rating(test_wallet_chain, test_wallet_address)

5. Contoh 4: Mencari Token (/tokens/search)

Jika Anda hanya memiliki nama atau simbol token, Anda dapat mencoba menemukan alamat kontraknya.Python

def search_for_token(query, chain=None, page_size=5):
    """
    Searches for tokens and displays results.
    """
    print(f"\n--- Searching for tokens with query: '{query}' ---")
    endpoint = "/tokens/search"
    params = {
        "query": query,
        "pageSize": page_size
    }
    if chain:
        params["chain"] = chain
        print(f"Filtering by chain: {chain}")
        
    data = make_api_request(endpoint, params=params)
    
    if data and 'items' in data:
        tokens_found = data['items']
        print(f"Found {len(tokens_found)} token(s) (showing up to {page_size}):")
        if tokens_found:
            for token in tokens_found:
                print(f"  Name: {token.get('name')} ({token.get('symbol')})")
                print(f"    Contract: {token.get('contractAddress')}")
                print(f"    Chain: {token.get('chain')}")
                print(f"    Risk Level: {token.get('riskLevel')}")
                print(f"    DEX Screener Link: {token.get('dexScreenerLink')}")
                print("-" * 20)
        else:
            print("No tokens found matching your query.")
        
        # Pagination details are also available if you want to implement full pagination
        # print(f"Total Items: {data.get('totalItems')}, Page: {data.get('pageNumber')}, Total Pages: {data.get('totalPages')}")
    else:
        print("Failed to perform token search or no items found.")

# --- Usage Example for Token Search ---
# search_for_token("CAKE", chain="bsc")
# search_for_token("Shiba Inu") # Broad search across chains

6. Contoh 5: Mencantumkan Chain yang Didukung (/utils/chains)

Panggilan utilitas sederhana untuk mendapatkan daftar chain yang didukung oleh API. Ini dapat berguna untuk memvalidasi input pengguna atau mengisi dropdown di aplikasi.Python

def list_supported_chains():
    """
    Lists all chains supported by the Rugcheck.xyz API.
    """
    print("\n--- Supported Blockchains by Rugcheck.xyz API ---")
    endpoint = "/utils/chains"
    data = make_api_request(endpoint)
    
    if data:
        for chain_info in data:
            print(f"  ID: {chain_info.get('id'):<15} Name: {chain_info.get('name'):<20} Native: {chain_info.get('nativeCurrencySymbol')}")
    else:
        print("Failed to retrieve supported chains.")

# --- Usage Example for Listing Chains ---
# list_supported_chains()

Menjalankan Contoh:

Untuk menjalankan contoh-contoh ini:

  1. Simpan kode sebagai file Python (misalnya, rugcheck_user.py).
  2. Atur kunci API Anda: export RUGCHECK_API_KEY="KUNCI_API_ANDA_YANG_SEBENARNYA" (di Linux/macOS) atau atur di variabel lingkungan sistem Anda (Windows).
  3. Hapus komentar pada baris contoh penggunaan di akhir setiap blok fungsi yang ingin Anda uji.
  4. Jalankan dari terminal Anda: python rugcheck_user.py

Bagian 5: Praktik Terbaik dan Tips Lanjutan

Kesimpulan

API Rugcheck.xyz menawarkan cara yang kuat dan terperinci untuk menilai risiko yang terkait dengan proyek mata uang kripto secara terprogram. Dengan menguasai penggunaannya melalui pengkodean praktis, seperti yang ditunjukkan dalam panduan ini, Anda dapat secara signifikan meningkatkan proses uji tuntas Anda, membangun sistem trading otomatis yang lebih aman, dan berkontribusi pada ekosistem DeFi yang lebih transparan. Ingatlah untuk selalu menggunakan alat tersebut secara bertanggung jawab dan bersamaan dengan penelitian komprehensif. Kekuatan API terletak pada kemampuan Anda untuk secara efektif meminta, mengurai, dan menafsirkan kekayaan data yang disediakannya.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda agar dapat bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.