Rugcheck API Anahtarını Nasıl Elde Edersiniz ve Rugcheck API'yi Nasıl Kullanırsınız?

Kripto dünyası fırsatlarla dolu, risk de yüksek. Rug pull'lar ve kötü token'lar büyük kayıplara yol açabilir. Rugcheck.xyz, potansiyel riskleri analiz eder. API'si, due diligence'ı otomatikleştirmek için kullanılabilir.

Efe Demir

Efe Demir

5 June 2025

Rugcheck API Anahtarını Nasıl Elde Edersiniz ve Rugcheck API'yi Nasıl Kullanırsınız?

```html

Kripto para birimi ortamı fırsatlarla dolu, ancak aynı zamanda önemli riskler de barındırıyor. Rug pull'lar ve kötü tasarlanmış token'lar önemli kayıplara yol açabilir. Rugcheck.xyz, kripto projelerini potansiyel kırmızı bayraklar açısından analiz ederek kritik bir hizmet sunar. API'si, geliştiricilerin, yatırımcıların ve analistlerin bu içgörülere programlı olarak erişmesini sağlayarak, durum tespiti çabalarını otomatikleştirir ve ölçeklendirir. Bu kılavuz, Rugcheck.xyz API'sini nasıl kullanacağınız üzerine yoğunlaşacak ve size pratik Python örnekleri sunacaktır.

💡
Harika bir API Dokümantasyonu üreten harika bir API Test aracı mı istiyorsunuz? Güzel API Dokümantasyonu?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
button

Rugcheck.xyz ve API'sine Kısa Bir Bakış

Rugcheck.xyz nedir?

Rugcheck.xyz, kripto para birimi token'larını ve akıllı sözleşmeleri kötü niyet belirtileri (rug pull'lar veya honeypot'lar gibi) veya doğal riskler açısından incelemek için tasarlanmış bir platformdur. Sözleşme kodunu, likiditeyi, token ekonomisini, geliştirici cüzdanlarını ve daha fazlasını inceler, risk değerlendirmeleri ve ayrıntılı raporlar sağlar.

Neden API?

API, Rugcheck.xyz'nin analitik motoruna programlı erişim sağlayarak şunları mümkün kılar:

Rugcheck.xyz API Anahtarınızı Alma – Temel Bilgiler

API'yi kullanmak için bir API anahtarına ihtiyacınız var. Rugcheck.xyz API dokümantasyonu (https://api.rugcheck.xyz/swagger/index.html), /user/api-keys gibi uç noktalar aracılığıyla anahtar yönetimi için bir kullanıcı hesabı sistemi ima eder.

  1. Kaydol/Giriş Yap: Ana Rugcheck.xyz web sitesini ziyaret edin ve bir hesap oluşturun veya oturum açın.
  2. API Ayarlarını Bul: Kullanıcı panonuzda "API", "Geliştirici" veya "API Anahtarları" bölümünü arayın.
  3. Anahtar Oluştur: Yeni bir API anahtarı oluşturun. Daha kolay tanımlama için adlandırabilirsiniz.
  4. Anahtarınızı Güvende Tutun: Oluşturulan anahtarı kopyalayın ve güvenli bir şekilde saklayın (örneğin, parola yöneticisi, ortam değişkeni). Asla genel kod depolarında veya istemci tarafı uygulamalarda ifşa etmeyin.

Tüm API istekleri, bu anahtarın X-API-KEY başlığında gönderilmesini gerektirir.

Koda dalmadan önce, birlikte çalışacağımız bazı birincil uç noktalar şunlardır (ayrıntılı bilgi için Swagger belgelerine bakın):

Tüm istekler için Temel URL şudur: https://api.rugcheck.xyz

Rugcheck.xyz API'si Nasıl Kullanılır: Derinlemesine Python Örnekleri

İşte pratikleştiğimiz yer burası. requests kütüphanesiyle Python kullanacağız.

Önkoşullar:

1. Kurulum ve Temel API Çağrı Fonksiyonu

İlk olarak, ortamımızı ayarlayalım ve API çağrılarını işlemek için yeniden kullanılabilir bir fonksiyon oluşturalım. API anahtarınızı bir ortam değişkeni olarak saklamak en iyi uygulamadır.Python

import requests
import json
import os

# Güvenlik için API anahtarını ortam değişkeninden yükle
API_KEY = os.getenv('RUGCHECK_API_KEY')
BASE_URL = "https://api.rugcheck.xyz"

if not API_KEY:
    print("Hata: RUGCHECK_API_KEY ortam değişkeni ayarlanmamış.")
    # Gerçek bir uygulamada buradan çıkmak veya bir istisna oluşturmak isteyebilirsiniz
    # Gösteri için, devam etmesine izin vereceğiz ancak çağrılar başarısız olacaktır.
    # API_KEY = "YOUR_FALLBACK_API_KEY_FOR_TESTING_ONLY" # Gerçek kullanım için önerilmez

HEADERS = {
    "X-API-KEY": API_KEY,
    "Accept": "application/json" # Kabul edilen yanıt türünü belirtmek iyi bir uygulamadır
}

def make_api_request(endpoint, params=None):
    """
    Rugcheck.xyz API'sine bir GET isteği yapar.
    
    Args:
        endpoint (str): API uç nokta yolu (örneğin, "/utils/chains").
        params (dict, optional): İstek için sorgu parametreleri.
        
    Returns:
        dict or None: Bir Python sözlüğü olarak JSON yanıtı veya bir hata oluşursa None.
    """
    if not API_KEY or API_KEY == "YOUR_FALLBACK_API_KEY_FOR_TESTING_ONLY":
        print("Hata: API Anahtarı düzgün yapılandırılmamış.")
        return None
        
    url = f"{BASE_URL}{endpoint}"
    try:
        response = requests.get(url, headers=HEADERS, params=params, timeout=30) # 30 saniyelik zaman aşımı
        response.raise_for_status()  # Kötü yanıtlar için HTTPError oluşturur (4xx veya 5xx)
        return response.json()
    except requests.exceptions.HTTPError as http_err:
        print(f"HTTP hatası oluştu: {http_err}")
        print(f"Durum Kodu: {response.status_code}")
        try:
            # Mümkünse API'den hata ayrıntılarını yazdırmaya çalışın
            print(f"Hata Yanıtı: {response.json()}")
        except json.JSONDecodeError:
            print(f"Hata Yanıtı (JSON değil): {response.text}")
    except requests.exceptions.ConnectionError as conn_err:
        print(f"Bağlantı hatası oluştu: {conn_err}")
    except requests.exceptions.Timeout as timeout_err:
        print(f"Zaman aşımı hatası oluştu: {timeout_err}")
    except requests.exceptions.RequestException as req_err:
        print(f"İstekle ilgili beklenmedik bir hata oluştu: {req_err}")
    except json.JSONDecodeError: # response.json() HTTPError olmayan durumlar için başarısız olursa
        print("API'den JSON yanıtı çözülemedi.")
        print(f"Yanıt içeriği: {response.text if 'response' in locals() else 'Yanıt nesnesi yok'}")
    return None

Önemli: Aşağıdaki örneklerin çalışması için, RUGCHECK_API_KEY'in ortamınızda ayarlandığından emin olun. Ayrıca, ilgili zincirler için geçerli sözleşme adreslerine ve cüzdan adreslerine ihtiyacınız olacaktır.

2. Örnek 1: Token Taramasına Derinlemesine Dalış (/tokens/scan/{chain}/{contractAddress})

Bu, en güçlü uç noktalardan biridir. Bir token'ı tarayalım ve yanıtı inceleyelim.Python

def get_token_scan_details(chain, contract_address, include_dex=True, include_events=False):
    """
    Bir token'ı tarar ve ayrıntılı bilgileri yazdırır.
    """
    print(f"\n--- Token Taranıyor: {contract_address} on {chain} ---")
    endpoint = f"/tokens/scan/{chain}/{contract_address}"
    params = {
        "includeDexScreenerData": str(include_dex).lower(), # API, dize "true" veya "false" bekler
        "includeSignificantEvents": str(include_events).lower()
    }
    
    data = make_api_request(endpoint, params=params)
    
    if data:
        print(f"Tarama Kimliği: {data.get('id')}")
        print(f"Risk Seviyesi: {data.get('riskLevel')}")
        
        trust_score_data = data.get('trustScore', {})
        print(f"Güven Puanı: {trust_score_data.get('value')} ({trust_score_data.get('rating')})")

        print("\nBulunan Dolandırıcılıklar:")
        scams = data.get('scams', [])
        if scams:
            for scam in scams:
                print(f"  - Tür: {scam.get('type')}, Ciddiyet: {scam.get('severity')}, Mesaj: {scam.get('message')}")
        else:
            print("  Bu tarama tarafından belirli bir dolandırıcılık göstergesi bulunamadı.")

        print("\nUyarılar:")
        warnings = data.get('warnings', [])
        if warnings:
            for warning in warnings:
                print(f"  - Tür: {warning.get('type')}, Ciddiyet: {warning.get('severity')}, Mesaj: {warning.get('message')}")
        else:
            print("  Bu tarama tarafından uyarı bulunamadı.")

        contract_details = data.get('contractDetails', {})
        print("\nSözleşme Ayrıntıları:")
        print(f"  Adı: {contract_details.get('name')}")
        print(f"  Sembol: {contract_details.get('symbol')}")
        print(f"  Ondalık Basamaklar: {contract_details.get('decimals')}")
        print(f"  Sahibi: {contract_details.get('ownerAddress')}")
        print(f"  Oluşturucu: {contract_details.get('creatorAddress')}")
        print(f"  Doğrulandı: {contract_details.get('isVerified')}")
        if contract_details.get('isProxy'):
            print(f"  Proxy Uygulaması: {contract_details.get('proxyImplementationAddress')}")
        
        taxes = data.get('taxes', {})
        print("\nVergiler:")
        print(f"  Alım Vergisi: {taxes.get('buyTax')}%")
        print(f"  Satış Vergisi: {taxes.get('sellTax')}%")
        print(f"  Transfer Vergisi: {taxes.get('transferTax')}%")
        if taxes.get('isBuyTaxModifiable') or taxes.get('isSellTaxModifiable') or taxes.get('isTransferTaxModifiable'):
            print("  Uyarı: Bir veya daha fazla vergi değiştirilebilir.")

        liquidity = data.get('liquidityDetails', {})
        print("\nLikidite Ayrıntıları:")
        if liquidity.get('dexes'):
            for dex in liquidity['dexes']:
                print(f"  DEX: {dex.get('name')} ({dex.get('pairAddress')})")
                print(f"    Likidite: {dex.get('liquidityAmountInUsd')} USD")
                print(f"    Toplam LP Arzı: {dex.get('totalSupply')}")
                if dex.get('locks'):
                    for lock in dex['locks']:
                        print(f"      Kilit: Kilitlenen Miktar {lock.get('amountLocked')} {lock.get('unlockDate')} tarihine kadar, Satıcı: {lock.get('vendorName')}")
                else:
                    print("      Bu DEX için açık LP kilidi bulunamadı.")
        else:
            print("  DEX likidite bilgisi bulunamadı.")
            
        holder_analysis = data.get('holderAnalysis', {})
        print("\nSahip Analizi:")
        print(f"  Sahip Sayısı: {holder_analysis.get('holderCount')}")
        if holder_analysis.get('topHolders'):
            print("  En İyi Sahipler:")
            for i, holder in enumerate(holder_analysis['topHolders'][:3]): # Kısalık için ilk 3'ü görüntüle
                print(f"    {i+1}. Adres: {holder.get('address')}, Bakiye: {holder.get('balance')}, % Arz: {holder.get('percentage')}%")
        
        if include_dex and 'dexScreenerData' in data and data['dexScreenerData']:
            dex_data = data['dexScreenerData']
            print("\nDEX Screener Verileri:")
            print(f"  Fiyat (USD): {dex_data.get('priceUsd')}")
            print(f"  FDV (USD): {dex_data.get('fdv')}")
            print(f"  Hacim (24s USD): {dex_data.get('volume', {}).get('h24')}")
            # Gerektiğinde daha fazla alan ekleyin
            
        # include_events True ise 'significantEvents'i benzer şekilde işleyebilirsiniz
        # print(json.dumps(data, indent=2)) # Keşif için tam ham yanıtı yazdırmak için
    else:
        print("Token tarama ayrıntıları alınamadı.")

# --- Token Taraması için Kullanım Örneği ---
# Desteklenen listeden geçerli bir sözleşme adresi ve zincirle değiştirin (örneğin, 'bsc', 'ethereum')
# BSC için (BEP-20 token'ları): örneğin, WBNB sözleşmesi "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
# Ethereum için (ERC-20 token'ları): örneğin, USDC sözleşmesi "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
# test_chain = "bsc"
# test_contract = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" # BSC'de WBNB (örnek)
# get_token_scan_details(test_chain, test_contract, include_dex=True)

Tarama Sonuçlarının Yorumlanması:

3. Örnek 2: Kaynak Kodunu Alma (/tokens/source-code/{chain}/{contractAddress})

Bir sözleşmenin doğrulanıp doğrulanmadığını bilmek ve kaynak kodunu inceleyebilmek hayati öneme sahiptir.Python

def get_token_source_code(chain, contract_address):
    """
    Bir token'ın kaynak kodu hakkında bilgi alır ve görüntüler.
    """
    print(f"\n--- Kaynak Kodu Alınıyor: {contract_address} on {chain} ---")
    endpoint = f"/tokens/source-code/{chain}/{contract_address}"
    
    data = make_api_request(endpoint)
    
    if data:
        print(f"Sözleşme Adı: {data.get('contractName')}")
        print(f"Doğrulandı mı: {data.get('isVerified')}")
        
        if data.get('isVerified'):
            # ABI çok uzun olabilir, bu yüzden sadece bir parçasını veya varlığını yazdırın
            print(f"ABI: {'Mevcut' if data.get('abi') else 'Mevcut değil'}") 
            
            source_code = data.get('sourceCode')
            if isinstance(source_code, str):
                print(f"Kaynak Kodu Parçacığı (ilk 500 karakter):\n{source_code[:500]}...")
                # Gerçek bir uygulamada, bunu bir dosyaya kaydedebilirsiniz:
                # with open(f"{contract_address}_source.sol", "w") as f:
                # f.write(source_code)
                # print(f"Tam kaynak kodu {contract_address}_source.sol dosyasına kaydedildi")
            elif isinstance(source_code, dict): # Çok dosyalı kaynaklar için
                print("Kaynak Kodu (birden fazla dosya):")
                for filename, content in source_code.items():
                    print(f"  Dosya: {filename}, Parçacık (ilk 200 karakter): {content.get('content', '')[:200]}...")
            else:
                print("Kaynak Kodu: Mevcut değil veya beklenmedik biçim.")
        else:
            print("Sözleşme kaynak kodu doğrulanmadı veya mevcut değil.")
    else:
        print("Kaynak kodu bilgileri alınamadı.")

# --- Kaynak Kodu için Kullanım Örneği ---
# test_chain_eth = "ethereum"
# usdc_contract_eth = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" # Ethereum'da USDC (doğrulandı)
# get_token_source_code(test_chain_eth, usdc_contract_eth)

4. Örnek 3: Cüzdan Risk Derecelendirmesi (/wallets/risk-rating/{chain}/{walletAddress})

Bir projeyle ilişkili cüzdanları (örneğin, dağıtıcı, ekip cüzdanları) analiz etmek riskleri ortaya çıkarabilir.Python

def get_wallet_risk_rating(chain, wallet_address):
    """
    Bir cüzdan için risk derecelendirmesini alır ve görüntüler.
    """
    print(f"\n--- Cüzdan için Risk Derecelendirmesi Alınıyor: {wallet_address} on {chain} ---")
    endpoint = f"/wallets/risk-rating/{chain}/{wallet_address}"
    
    data = make_api_request(endpoint)
    
    if data:
        print(f"Genel Cüzdan Risk Seviyesi: {data.get('riskLevel')}")
        print(f"Özet: {data.get('summary')}")
        
        print("\nRiskli İlişkili Token'lar:")
        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"    Zincir: {token_info.get('chain')}")
                print(f"    Risk Seviyesi: {token_info.get('riskLevel')}")
                print(f"    Rol: {token_info.get('roleInTokenContext')} (örneğin, Dağıtıcı, Sahip)")
        else:
            print("  Bu tarama tarafından bu cüzdana bağlı kayda değer riskli ilişkili token bulunamadı.")
            
        # 'activitySummary', 'knownAssociations' gibi diğer alanlar da ayrıştırılabilir.
        # print(json.dumps(data, indent=2)) # Tam yanıt için
    else:
        print("Cüzdan risk derecelendirmesi alınamadı.")

# --- Cüzdan Risk Derecelendirmesi için Kullanım Örneği ---
# Gerçek bir cüzdan adresi ve zincirle değiştirin
# Örnek: Araştırdığınız bir dağıtıcı cüzdan adresi
# test_wallet_chain = "bsc"
# test_wallet_address = "0x000000000000000000000000000000000000dead" # Örnek, gerçek bir tane kullanın
# get_wallet_risk_rating(test_wallet_chain, test_wallet_address)

5. Örnek 4: Token Arama (/tokens/search)

Yalnızca bir token adınız veya sembolünüz varsa, sözleşme adresini bulmaya çalışabilirsiniz.Python

def search_for_token(query, chain=None, page_size=5):
    """
    Token'ları arar ve sonuçları görüntüler.
    """
    print(f"\n--- '{query}' sorgusuyla token aranıyor ---")
    endpoint = "/tokens/search"
    params = {
        "query": query,
        "pageSize": page_size
    }
    if chain:
        params["chain"] = chain
        print(f"Zincire göre filtreleme: {chain}")
        
    data = make_api_request(endpoint, params=params)
    
    if data and 'items' in data:
        tokens_found = data['items']
        print(f"Bulunan {len(tokens_found)} token(lar) (en fazla {page_size} gösteriliyor):")
        if tokens_found:
            for token in tokens_found:
                print(f"  Adı: {token.get('name')} ({token.get('symbol')})")
                print(f"    Sözleşme: {token.get('contractAddress')}")
                print(f"    Zincir: {token.get('chain')}")
                print(f"    Risk Seviyesi: {token.get('riskLevel')}")
                print(f"    DEX Screener Bağlantısı: {token.get('dexScreenerLink')}")
                print("-" * 20)
        else:
            print("Sorgunuzla eşleşen token bulunamadı.")
        
        # Tam sayfalama uygulamak istiyorsanız, sayfalama ayrıntıları da mevcuttur
        # print(f"Toplam Öğe: {data.get('totalItems')}, Sayfa: {data.get('pageNumber')}, Toplam Sayfa: {data.get('totalPages')}")
    else:
        print("Token araması gerçekleştirilemedi veya öğe bulunamadı.")

# --- Token Araması için Kullanım Örneği ---
# search_for_token("CAKE", chain="bsc")
# search_for_token("Shiba Inu") # Zincirler arasında geniş arama

6. Örnek 5: Desteklenen Zincirleri Listeleme (/utils/chains)

API'nin desteklediği zincirlerin bir listesini almak için basit bir yardımcı çağrı. Bu, kullanıcı girdisini doğrulamak veya bir uygulamada açılır menüleri doldurmak için yararlı olabilir.Python

def list_supported_chains():
    """
    Rugcheck.xyz API tarafından desteklenen tüm zincirleri listeler.
    """
    print("\n--- Rugcheck.xyz API tarafından desteklenen Blok Zincirleri ---")
    endpoint = "/utils/chains"
    data = make_api_request(endpoint)
    
    if data:
        for chain_info in data:
            print(f"  Kimlik: {chain_info.get('id'):<15} Adı: {chain_info.get('name'):<20} Yerel: {chain_info.get('nativeCurrencySymbol')}")
    else:
        print("Desteklenen zincirler alınamadı.")

# --- Zincirleri Listeleme için Kullanım Örneği ---
# list_supported_chains()

Örnekleri Çalıştırma:

Bu örnekleri çalıştırmak için:

  1. Kodu bir Python dosyası olarak kaydedin (örneğin, rugcheck_user.py).
  2. API anahtarınızı ayarlayın: export RUGCHECK_API_KEY="YOUR_ACTUAL_API_KEY" (Linux/macOS'ta) veya sisteminizin ortam değişkenlerinde ayarlayın (Windows).
  3. Test etmek istediğiniz her fonksiyon bloğunun sonundaki kullanım örneği satırlarının yorumunu kaldırın.
  4. Terminalinizden çalıştırın: python rugcheck_user.py

Bölüm 5: En İyi Uygulamalar ve Gelişmiş İpuçları

Sonuç

Rugcheck.xyz API'si, kripto para birimi projeleriyle ilişkili riskleri programlı olarak değerlendirmenin sağlam ve ayrıntılı bir yolunu sunar. Bu kılavuzda gösterildiği gibi, pratik kodlama yoluyla kullanımında ustalaşarak, durum tespiti sürecinizi önemli ölçüde geliştirebilir, daha güvenli otomatik alım satım sistemleri oluşturabilir ve daha şeffaf bir DeFi ekosistemine katkıda bulunabilirsiniz. Bu tür araçları her zaman sorumlu bir şekilde ve kapsamlı araştırmalarla birlikte kullanmayı unutmayın. API'nin gücü, sağladığı zengin verileri etkili bir şekilde sorgulama, ayrıştırma ve yorumlama yeteneğinizde yatar.

💡
Harika bir API Dokümantasyonu üreten harika bir API Test aracı mı istiyorsunuz? Güzel API Dokümantasyonu?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
button

```

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin