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

# SDK Overview

> Official Yativo Crypto SDKs for TypeScript/Node.js, Python, PHP, Java/Spring Boot, React, and MCP

# Yativo Crypto SDKs

Yativo provides official SDKs for the most popular languages and frameworks, plus an MCP server for AI agents. Every SDK wraps the same underlying [Yativo Crypto API](https://crypto-api.yativo.com/api/v1/) and provides a consistent, idiomatic interface for your platform.

<CardGroup cols={3}>
  <Card title="TypeScript / Node.js" icon="js" href="/sdks/typescript">
    Full-featured SDK for Node.js and browser environments, including a card embed widget.
  </Card>

  <Card title="Python" icon="python" href="/sdks/python">
    Pythonic SDK with snake\_case methods and structured exception hierarchy.
  </Card>

  <Card title="PHP" icon="php" href="/sdks/php">
    Composer package with static webhook verification helpers.
  </Card>

  <Card title="Java / Spring Boot" icon="java" href="/sdks/java">
    Spring Boot starter with auto-configuration, DI-ready services, and event-driven webhooks.
  </Card>

  <Card title="React" icon="react" href="/sdks/react">
    Hooks and pre-built components built on top of the TypeScript SDK.
  </Card>

  <Card title="MCP Server" icon="robot" href="/sdks/mcp">
    Model Context Protocol server for AI agents — manage agentic wallets via Claude, GPT, or any MCP-compatible agent.
  </Card>
</CardGroup>

***

## Quick Comparison

| Feature              | TypeScript                                                               | Python                                                             | PHP                                                                     | Java                                                                                                                                         | React                                                                                | MCP                                                                      |
| -------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| Package manager      | npm                                                                      | pip                                                                | Composer                                                                | Maven / Gradle                                                                                                                               | npm                                                                                  | npm                                                                      |
| Package name         | [`@yativo/crypto-sdk`](https://www.npmjs.com/package/@yativo/crypto-sdk) | [`yativo-crypto-sdk`](https://pypi.org/project/yativo-crypto-sdk/) | [`yativo/crypto-sdk`](https://packagist.org/packages/yativo/crypto-sdk) | [`com.yativo:yativo-crypto-sdk-spring-boot-starter`](https://central.sonatype.com/artifact/com.yativo/yativo-crypto-sdk-spring-boot-starter) | [`@yativo/crypto-sdk-react`](https://www.npmjs.com/package/@yativo/crypto-sdk-react) | [`@yativo/mcp-server`](https://www.npmjs.com/package/@yativo/mcp-server) |
| Latest version       | `1.0.3`                                                                  | `1.0.1`                                                            | `1.0.0`                                                                 | `1.0.1`                                                                                                                                      | `1.0.2`                                                                              | `1.0.1`                                                                  |
| Min runtime          | Node 16 / modern browser                                                 | Python 3.8                                                         | PHP 7.4                                                                 | Java 11 / Spring Boot 2.7+                                                                                                                   | React 17+                                                                            | Node 18+                                                                 |
| Auto token refresh   | Yes                                                                      | Yes                                                                | Yes                                                                     | Yes                                                                                                                                          | Yes                                                                                  | N/A (API key auth)                                                       |
| Webhook verification | Yes                                                                      | Yes                                                                | Yes (static)                                                            | Yes (@EventListener)                                                                                                                         | Via TypeScript SDK                                                                   | —                                                                        |
| Card widget / embed  | YativoCardEmbed                                                          | —                                                                  | —                                                                       | —                                                                                                                                            | YativoCardWidget                                                                     | —                                                                        |
| UI components        | —                                                                        | —                                                                  | —                                                                       | —                                                                                                                                            | Yes                                                                                  | —                                                                        |
| Agentic wallets      | Via API                                                                  | Via API                                                            | Via API                                                                 | Via API                                                                                                                                      | Via API                                                                              | Built-in MCP tools                                                       |

***

## Choosing the Right SDK

<Tabs>
  <Tab title="TypeScript / Node.js">
    Use the TypeScript SDK when:

    * Building a **Node.js** backend (Express, Fastify, NestJS, etc.)
    * Writing a **serverless function** (Vercel, AWS Lambda, Cloudflare Workers)
    * Embedding the Yativo Card widget directly in a **non-React** frontend
    * You want full TypeScript type safety across all API resources

    ```bash theme={null}
    npm install @yativo/crypto-sdk
    ```
  </Tab>

  <Tab title="Python">
    Use the Python SDK when:

    * Building a **Django**, **Flask**, or **FastAPI** backend
    * Running **data pipelines** or **automation scripts**
    * Integrating Yativo into a **Jupyter notebook** or analytics workflow

    ```bash theme={null}
    pip install yativo-crypto-sdk
    ```
  </Tab>

  <Tab title="PHP">
    Use the PHP SDK when:

    * Building a **Laravel**, **Symfony**, or plain PHP application
    * Your existing stack is PHP and you need a drop-in Composer package

    ```bash theme={null}
    composer require yativo/crypto-sdk
    ```
  </Tab>

  <Tab title="Java / Spring Boot">
    Use the Java SDK when:

    * Your application is built on **Spring Boot**
    * You want **auto-configuration** via `application.yml` with zero boilerplate
    * You prefer dependency injection and `@Autowired` service beans
    * You want to handle webhook events via Spring's `@EventListener`

    ```xml theme={null}
    <!-- Maven -->
    <dependency>
      <groupId>com.yativo</groupId>
      <artifactId>yativo-crypto-sdk-spring-boot-starter</artifactId>
      <version>1.0.1</version>
    </dependency>
    ```
  </Tab>

  <Tab title="React">
    Use the React SDK when:

    * Building a **React** single-page application or Next.js app
    * You want ready-made hooks (`useWallets`, `useBalance`, `useSwap`, etc.)
    * You need pre-built UI components (`DepositWidget`, `YativoCardWidget`, etc.)
    * You want authentication state managed for you via `YativoProvider`

    ```bash theme={null}
    npm install @yativo/crypto-sdk-react
    ```
  </Tab>
</Tabs>

***

## Common Concepts Across All SDKs

All SDKs expose the same logical resources:

| Resource       | Description                          |
| -------------- | ------------------------------------ |
| `auth`         | Register, login, OTP verification    |
| `accounts`     | Manage business accounts             |
| `assets`       | Wallets and supported assets         |
| `transactions` | Send / receive funds                 |
| `webhooks`     | Create and verify webhooks           |
| `apiKeys`      | Programmatic API key management      |
| `customers`    | End-customer management              |
| `analytics`    | Volume, fees, and reporting          |
| `cards`        | Virtual card issuance and management |
| `swap`         | Quote and execute asset swaps        |
| `iban`         | Dedicated IBAN accounts              |

### Authentication Modes

Every SDK supports two authentication flows:

1. **Email / password** — call `auth.login()` then `auth.verifyOtp()` to obtain a session token; the SDK stores it and auto-refreshes on 401 responses.
2. **API key + secret** — pass `apiKey` and `apiSecret` to the constructor. The SDK exchanges them for a Bearer token automatically; no manual token management required.

### Rate Limiting

The Yativo Crypto API enforces **60 requests per minute per endpoint**. All SDKs surface rate-limit errors as dedicated exception types so you can implement back-off logic.

***

## Base URL

All SDKs default to the production base URL:

```
https://crypto-api.yativo.com/api/
```

You can override this in the constructor for staging or local development environments.

***

## Next Steps

<CardGroup cols={2}>
  <Card title="TypeScript SDK" href="/sdks/typescript" icon="js">
    Complete guide with code examples for every resource.
  </Card>

  <Card title="Python SDK" href="/sdks/python" icon="python">
    Python-idiomatic examples and exception handling.
  </Card>

  <Card title="PHP SDK" href="/sdks/php" icon="php">
    Composer setup, try/catch patterns, and webhook verification.
  </Card>

  <Card title="Java SDK" href="/sdks/java" icon="java">
    Spring Boot auto-configuration and service injection.
  </Card>

  <Card title="React SDK" href="/sdks/react" icon="react">
    Hooks, components, widgets, and theme customization.
  </Card>

  <Card title="Browser Extensions" href="/extensions/overview" icon="puzzle-piece">
    Chrome and Firefox extensions for wallet monitoring and notifications.
  </Card>
</CardGroup>
