> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# getLargestAccounts

> Lamport bakiyesine göre en büyük 20 hesabı döndürür

## Parametreler

<ParamField query="config" type="object" optional>
  Aşağıdaki isteğe bağlı alanları içeren yapılandırma nesnesi:

  <Expandable title="config fields">
    <ParamField query="commitment" type="string" optional>
      Kullanılacak onay seviyesi:

      * `processed`: En son blok (onaylanmamış)
      * `confirmed`: Süper çoğunluk tarafından onaylanmış
      * `finalized`: Süper çoğunluk tarafından sonuçlandırılmış
    </ParamField>

    <ParamField query="filter" type="string" optional>
      Sonuçları hesap türüne göre filtreleyin:

      * `circulating`: Dolaşımdaki hesaplara filtrele
      * `nonCirculating`: Dolaşımda olmayan hesaplara filtrele
    </ParamField>
  </Expandable>
</ParamField>

## Yanıt

<ResponseField name="result" type="object">
  <Expandable title="result fields">
    <ResponseField name="context" type="object">
      <ResponseField name="slot" type="number">
        İsteğin işlendiği slot
      </ResponseField>
    </ResponseField>

    <ResponseField name="value" type="array">
      Hesap bilgilerini içeren nesneler dizisi:

      <ResponseField name="address" type="string">
        Hesabın adresi (base-58 kodlu)
      </ResponseField>

      <ResponseField name="lamports" type="number">
        Hesaptaki lamport sayısı
      </ResponseField>
    </ResponseField>
  </Expandable>
</ResponseField>

## Kod Örnekleri

### Temel İstek

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLargestAccounts"
}'
```

### Filtreli İstek

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLargestAccounts",
  "params": [
    {
      "filter": "circulating"
    }
  ]
}'
```

### web3.js Kullanımı

```typescript theme={null}
import { Connection } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');

// Get all largest accounts
const largestAccounts = await connection.getLargestAccounts();
console.log('Largest accounts:', largestAccounts);

// Get circulating accounts only
const circulatingAccounts = await connection.getLargestAccounts({
  filter: 'circulating'
});
console.log('Largest circulating accounts:', circulatingAccounts);
```

## Notlar

1. Lamport bakiyesine göre ilk 20 hesabı döndürür
2. Sonuçlar bakiyeye göre azalan sırayla sıralanır
3. Dolaşımdaki hesaplar, sistem programına ait olmayanları kapsar
4. Dolaşımda olmayan hesaplar genellikle sistem programına aittir
5. Mevcut durumdan okuduğu için yanıt anında gelir

## En İyi Uygulamalar

1. İhtiyacınıza göre uygun onay seviyesini kullanın:
   * Arayüz güncellemeleri için `processed`
   * Çoğu işlem için `confirmed`
   * Kritik işlemler için `finalized`
2. İlgili hesaplara odaklanmak için `filter` parametresini kullanın
3. Kullanıcılara gösterirken lamportları SOL'a çevirmek için 1e9'a bölün
4. RPC yükünü azaltmak için arayüz güncellemelerinde sonuçları önbelleğe almayı düşünün

## Yaygın Hatalar

| Kod    | Mesaj                           | Çözüm                                                |
| ------ | ------------------------------- | ---------------------------------------------------- |
| -32602 | Invalid param: Invalid filter   | 'circulating' veya 'nonCirculating' kullanın         |
| -32601 | Method not found                | Bir Solana RPC düğümüne bağlı olduğunuzu doğrulayın  |
| -32007 | Account information unavailable | Düğüm başlatılıyor veya senkronize ediliyor olabilir |

## Kullanım Senaryoları

1. **Ağ Analizi**
   ```typescript theme={null}
   async function analyzeNetworkDistribution() {
     const accounts = await connection.getLargestAccounts();
     const total = accounts.reduce((sum, acc) => sum + acc.lamports, 0);
     const top20Percentage = accounts.reduce((sum, acc) => sum + acc.lamports, 0) / total;
     console.log(`Top 20 accounts hold ${top20Percentage * 100}% of total SOL`);
   }
   ```

2. **Token Dağıtımı İzleme**
   ```typescript theme={null}
   async function monitorTokenDistribution() {
     const circulating = await connection.getLargestAccounts({ filter: 'circulating' });
     const nonCirculating = await connection.getLargestAccounts({ filter: 'nonCirculating' });
     
     const circulatingTotal = circulating.reduce((sum, acc) => sum + acc.lamports, 0);
     const nonCirculatingTotal = nonCirculating.reduce((sum, acc) => sum + acc.lamports, 0);
     
     console.log('Circulating supply:', circulatingTotal / 1e9, 'SOL');
     console.log('Non-circulating supply:', nonCirculatingTotal / 1e9, 'SOL');
   }
   ```
