> ## 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 Rust SDK

> Helius Rust SDK oficial para desenvolvimento Solana. Adicione o crate helius, analise transações com a Enhanced Transactions API e trate erros com suporte abrangente de API e DAS.

O Helius Rust SDK ([`helius`](https://github.com/helius-labs/helius-rust-sdk)) facilita o desenvolvimento em Solana a partir do Rust. Esta página aborda a instalação e o uso do SDK, tratamento de erros comuns e onde encontrar a documentação mais recente.

<CardGroup cols={1}>
  <Card title="Repositório GitHub" icon="rust" href="https://github.com/helius-labs/helius-rust-sdk">
    Helius Rust SDK oficial para desenvolvimento Solana
  </Card>
</CardGroup>

## Instalação

<Steps>
  <Step title="Adicionar dependência ao Cargo.toml">
    Para começar a usar o Helius Rust SDK 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` é sua 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 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="Rust Docs" 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 Helius API
  </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

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

Por exemplo, abaixo está um 401 lançado para uma chamada incorreta de getAsset:

```json 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 Helius SDK, 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 ajudá-lo na solução de problemas:

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

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

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

  <Accordion title="5XX: Internal Server Error">
    Esta é uma mensagem de erro genérica para problemas do lado do servidor. Por favor, entre em contato com o suporte da Helius para obter 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 possíveis erros retornados pelo cliente `Helius`
  </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>

## Contribuindo

Agradecemos todas as contribuições para nossos SDKs! Leia o [guia de contribuições](https://github.com/helius-labs/helius-rust-sdk/blob/dev/CONTRIBUTIONS.md) antes de abrir um pull request.
