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

# Helius Solana SDKs: Ferramentas de Desenvolvimento Node.js e Rust

> SDKs oficiais da Helius para desenvolvimento Solana em Node.js e Rust. Simplifique a integração com blockchain com APIs abrangentes, transações aprimoradas e suporte para DAS.

Na Helius, desenvolvemos um [Node.js](https://github.com/helius-labs/helius-sdk) e um [Rust SDK](https://github.com/helius-labs/helius-rust-sdk) para facilitar o desenvolvimento no Solana. A página a seguir inclui informações sobre a instalação e uso desses SDKs. Também aborda o tratamento comum de erros, onde encontrar a documentação mais recente e como contribuir para esses SDKs.

Também descrevemos uma lista de SDKs não oficiais criados pela nossa maravilhosa comunidade. Observe que esses SDKs não são mantidos oficialmente pela nossa equipe — apenas os SDKs de Node.js e Rust são.

<CardGroup cols={2}>
  <Card title="SDK Node.js" icon="js" href="https://github.com/helius-labs/helius-sdk">
    SDK Node.js oficial da Helius para desenvolvimento Solana
  </Card>

  <Card title="SDK Rust" icon="rust" href="https://github.com/helius-labs/helius-rust-sdk">
    SDK Rust oficial da Helius para desenvolvimento Solana
  </Card>
</CardGroup>

## SDK Node.js

Observe que o SDK Node.js foi reescrito na versão 2.0.0. Isso foi feito para usar `@solana/kit` e remover a dependência de `@solana/web3.js` versões superiores a 1.73.2. Para aqueles que estão migrando para a versão mais recente, consulte nosso [guia de migração](https://github.com/helius-labs/helius-sdk/blob/main/MIGRATION.md).

### Instalação

O SDK Node.js da Helius pode ser instalado com qualquer um dos seguintes gerenciadores de pacotes:

<Tabs>
  <Tab title="npm">
    ```bash theme={"system"}
    npm install helius-sdk
    ```
  </Tab>

  <Tab title="pnpm">
    ```bash theme={"system"}
    pnpm install helius-sdk
    ```
  </Tab>

  <Tab title="Yarn">
    ```bash theme={"system"}
    yarn add helius-sdk
    ```
  </Tab>
</Tabs>

### Início Rápido

Abaixo está um exemplo simples de como usar o SDK Node.js para buscar uma lista de ativos pertencentes a um determinado endereço:

```typescript theme={"system"}
import { createHelius } from "helius-sdk";

(async () => {
  const apiKey = ""; // From Helius dashboard
  const helius = createHelius({ apiKey });

  try {
    const assets = await helius.getAssetsByOwner({
      ownerAddress: "owner_address_goes_here",
      page: 1,
      limit: 50,
      sortBy: { sortBy: "created", sortDirection: "asc" },
    });

    console.log("Fetched assets:", assets);
  } catch (error) {
    console.error("Error:", error);
  }
})();
```

### Documentação

O [diretório de exemplos](https://github.com/helius-labs/helius-sdk/tree/main/examples) está repleto de exemplos de código detalhados que cobrem cada método e uso básico, organizados por namespace. Para a documentação de referência da API, consulte nossa [documentação](/docs/pt-BR/api-reference) e a [documentação oficial do Solana](https://solana.com/docs/rpc) para ajuda geral com a API JSON RPC do Solana. Para ajuda geral com o Kit, consulte a [documentação do Kit](https://www.solanakit.com/).

## SDK Rust

### Instalação

<Steps>
  <Step title="Adicionar dependência ao Cargo.toml">
    Para começar a usar o SDK Rust da Helius em seu projeto, adicione-o como uma dependência via [`cargo`](https://doc.rust-lang.org/cargo/). Abra o `Cargo.toml` do seu projeto e adicione a seguinte linha sob `[dependencies]`:

    ```toml theme={"system"}
    helius = "x.y.z"
    ```

    onde `x.y.z` é a versão desejada.
  </Step>

  <Step title="Alternativa: Use o comando cargo add">
    Alternativamente, use `cargo add helius` para adicionar a dependência diretamente via linha de comando. Isso encontrará automaticamente a versão mais recente compatível com o seu projeto e a adicionará ao seu `Cargo.toml`.
  </Step>

  <Step title="Mantenha seu SDK atualizado">
    Lembre-se de executar `cargo update` regularmente para obter a versão mais recente do SDK.
  </Step>
</Steps>

### Início Rápido

Abaixo está um exemplo simples de uso da [Enhanced Transactions API](/docs/pt-BR/enhanced-transactions) para [analisar uma transação específica](/docs/pt-BR/api-reference/enhanced-transactions/gettransactions):

```rust theme={"system"}
use helius::error::Result;
use helius::types::*;
use helius::Helius;

#[tokio::main]
async fn main() -> Result<()> {
    let api_key: &str = "your_api_key";
    let cluster: Cluster = Cluster::MainnetBeta;

    let helius: Helius = Helius::new(api_key, cluster).unwrap();

    let request: ParseTransactionsRequest = ParseTransactionsRequest {
        transactions: vec![
            "2sShYqqcWAcJiGc3oK74iFsYKgLCNiY2DsivMbaJGQT8pRzR8z5iBcdmTMXRobH8cZNZgeV9Ur9VjvLsykfFE2Li".to_string(),
        ],
    };

    let response: Result<Vec<EnhancedTransaction>, HeliusError> = helius.parse_transactions(request).await;
    println!("Assets: {:?}", response);

    Ok(())
}
```

### Documentação

<CardGroup cols={3}>
  <Card title="Docs Rust" icon="book" href="https://docs.rs/helius/latest/helius/">
    Documentação mais recente no docs.rs
  </Card>

  <Card title="Referência da API" icon="code" href="/docs/pt-BR/api-reference">
    Documentação da API Helius
  </Card>

  <Card title="Exemplos" icon="code-branch" href="https://github.com/helius-labs/helius-rust-sdk/tree/dev/examples">
    Exemplos de código no repositório GitHub
  </Card>
</CardGroup>

## Tratamento de Erros

<Callout type="warning">
  Uma mensagem de erro será lançada quando a API retornar um status de não-sucesso (ou seja, código 4xx ou 5xx).
</Callout>

Por exemplo, abaixo está um erro 401 gerado por uma chamada incorreta de getAsset usando o SDK Node.js:

```typescript theme={"system"}
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32001,
    "message": "Authentication failed. Missing or invalid API key."
  },
  "id": "1"
}
```

### Códigos de Erro Comuns

Ao trabalhar com o SDK Helius, você pode encontrar vários códigos de erro. Abaixo está uma tabela detalhando alguns dos códigos de erro comuns juntamente com informações adicionais para ajudar na solução de problemas:

<AccordionGroup>
  <Accordion title="400: Solicitação Inválida">
    Isso ocorre quando uma solicitação possui parâmetros inválidos.
  </Accordion>

  <Accordion title="401: Não Autorizado">
    Isso ocorre quando uma chave de API inválida é fornecida ou o acesso é restrito devido a regras RPC.
  </Accordion>

  <Accordion title="429: Muitas Solicitações">
    Isso indica que o usuário excedeu o limite de solicitações em um determinado período de tempo ou está sem créditos.
  </Accordion>

  <Accordion title="5XX: Erro Interno do Servidor">
    Esta é uma mensagem de erro genérica para problemas do lado do servidor. Entre em contato com o suporte da Helius para assistência.
  </Accordion>
</AccordionGroup>

Se você encontrar algum desses erros:

<Steps>
  <Step title="Verifique a documentação de erros">
    Consulte [`errors.rs`](https://github.com/helius-labs/helius-rust-sdk/blob/dev/src/error.rs) para uma lista de todos os erros possíveis retornados pelo cliente `Helius`, se estiver usando o SDK Rust. Para o SDK Node.js, consulte [erros do Kit](https://www.solanakit.com/docs/concepts/errors)
  </Step>

  <Step title="Revise a documentação">
    Consulte a [documentação da Helius](/docs/) para mais orientações
  </Step>

  <Step title="Entre em contato com o suporte">
    Entre em contato com a equipe de suporte da Helius para assistência mais detalhada
  </Step>
</Steps>

## Contribuição para Nossos SDKs

Agradecemos todas as contribuições para nossos SDKs! Se estiver interessado, aqui estão nossos repositórios GitHub:

<CardGroup cols={2}>
  <Card title="SDK Node.js" icon="js" href="https://github.com/helius-labs/helius-sdk/blob/main/CONTRIBUTING.md">
    Contribua para nosso SDK Node.js
  </Card>

  <Card title="SDK Rust" icon="rust" href="https://github.com/helius-labs/helius-rust-sdk/blob/dev/CONTRIBUTIONS.md">
    Contribua para nosso SDK Rust
  </Card>
</CardGroup>

<Callout type="info">
  Interessado em contribuir especificamente para o SDK Rust da Helius? Leia o seguinte [guia de contribuições](https://github.com/helius-labs/helius-rust-sdk/blob/dev/CONTRIBUTIONS.md) antes de abrir um pull request!
</Callout>

## SDKs da Comunidade Não Oficiais

<Callout emoji="👏">
  Nossos membros incríveis da comunidade também criaram seus próprios SDKs para interagir com nossas APIs REST. Observe que nossa equipe não mantém oficialmente esses SDKs.
</Callout>

<CardGroup cols={3}>
  <Card title="SDK Kotlin" href="https://github.com/dlgrech/khelius" />

  <Card title="SDK PHP" href="https://github.com/HowRareIs/helius-php-sdk" />

  <Card title="SDK Python" href="https://github.com/vmpyre/helius_sdk" />

  <Card title="SDK Rust (Síncrono)" href="https://github.com/bgreni/helius-rust-sdk" />

  <Card title="SDK Rust (Assíncrono)" href="https://github.com/dougEfresh/selene-helius-sdk" />
</CardGroup>
