> ## 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.

# Sandbox Environment

> Test and develop against the Yativo Crypto sandbox — pre-populated with test data and a public API key you can use immediately

## Overview

The Yativo Crypto Sandbox is an isolated testing environment that mirrors the production API. All wallets and transactions in sandbox run on **testnets only** — no real funds are ever involved.

<CardGroup cols={2}>
  <Card title="Sandbox URL" icon="flask">
    `https://crypto-sandbox.yativo.com/api/v1/`
  </Card>

  <Card title="Production URL" icon="rocket">
    `https://crypto-api.yativo.com/api/v1/`
  </Card>
</CardGroup>

***

## Quick Start — Use the Shared Sandbox Account

To get started immediately without registering, use the **shared sandbox API key** below. It's public and pre-populated with accounts, wallets, customers, and a webhook so you can explore every endpoint right away.

<Warning>
  This is a **shared public account** for exploration only. Do not store sensitive data here. For real integration testing, [create your own sandbox account](#create-your-own-sandbox-account) with a private API key.
</Warning>

### Step 1 — Generate a Bearer Token

For quick documentation testing, use the **long-lived docs token** (valid 1 year):

```bash theme={null}
curl -X GET 'https://crypto-sandbox.yativo.com/api/v1/sandbox/docs-token'
```

This returns a bearer token you can use immediately in the API playground above — no API key or secret needed.

<Accordion title="Alternative — Generate a standard 60-minute token">
  ```bash theme={null}
  curl -X POST 'https://crypto-sandbox.yativo.com/api/v1/auth/token' \
    -H 'Content-Type: application/json' \
    -d '{
      "api_key": "yativo_e072b3ef7e30fcb420183aa86ddd8452abd28a9ac8f5d04d",
      "api_secret": "df8da4d6b855c7e89bd3b4216dd0a1f4b30de1963c9bff0dcd666b15a0f836a5"
    }'
  ```
</Accordion>

You'll get back an `access_token`. The docs token is valid for 1 year; the standard token lasts 60 minutes (call `/auth/token` again to refresh).

### Step 2 — Start calling the API

```bash theme={null}
curl -X GET 'https://crypto-sandbox.yativo.com/api/v1/accounts/get-accounts' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```

The shared sandbox account is pre-populated with:

| Resource        | Details                                                                                                |
| --------------- | ------------------------------------------------------------------------------------------------------ |
| Accounts        | 1 account — "Sandbox Main"                                                                             |
| Assets          | USDC (SOL testnet) at address `GY1EZGdpiJNyx2BSKq8rfTDRe5K8Bb6Cf2Bn1pdmE2o1`                           |
| Customers       | 2 customers — [alice@example.com](mailto:alice@example.com), [bob@example.com](mailto:bob@example.com) |
| Webhooks        | 1 active webhook                                                                                       |
| Agentic Wallets | 1 test wallet with connector                                                                           |
| Payment Gateway | Simulated checkout available                                                                           |

<Tip>
  The shared sandbox credentials above can also be used in the **API playground** on every API reference page in these docs. The docs default to the sandbox base URL — just paste your Bearer token and try any endpoint.
</Tip>

***

## Create Your Own Sandbox Account

For private integration testing with dedicated credentials:

1. Register at [crypto.yativo.com/sign-up](https://crypto.yativo.com/sign-up)
2. Log in and go to **Developer → API Keys**
3. Create an API key — it works against both sandbox and production (just change the base URL)
4. Use `POST /auth/token` with your credentials against `https://crypto-sandbox.yativo.com/api/v1/`

***

## Sandbox vs Production

| Feature         | Sandbox                                             | Production                              |
| --------------- | --------------------------------------------------- | --------------------------------------- |
| Base URL        | `https://crypto-sandbox.yativo.com/api/v1/`         | `https://crypto-api.yativo.com/api/v1/` |
| API Keys        | Same keys work on both                              | Same                                    |
| Wallets         | Testnet only — no real value                        | Mainnet, real funds                     |
| Blockchains     | Testnets (Solana Devnet, Sepolia, etc.)             | Mainnets                                |
| Swap rates      | Simulated                                           | Live market rates                       |
| IBAN            | Testnet IBAN (no real banking)                      | Live EUR IBAN                           |
| Card program    | Test-mode card provider with simulated transactions | Live card issuer                        |
| Payment Gateway | Simulated payments via sandbox endpoint             | Live on-chain payments                  |
| Agentic Wallets | Testnet wallets with simulated transactions         | Real wallets, real funds                |
| Data            | Isolated from production                            | Live data                               |

<Note>
  All crypto wallets created in sandbox are on **testnet chains**. Addresses generated will never hold real funds. Testnet tokens can be obtained from each chain's faucet.
</Note>

***

## Supported Testnet Chains

| Network         | Testnet Used |
| --------------- | ------------ |
| Solana          | Devnet       |
| Ethereum / Base | Sepolia      |
| Gnosis          | Chiado       |
| Polygon         | Amoy         |
| BNB Chain       | BSC Testnet  |

***

## Sandbox Limitations

* **Yativo Card KYC**: Uses a test-mode KYC and card provider. Transactions are simulated.
* **IBAN bank transfers**: Cannot receive transfers from real banks — testnet only.
* **Swap rates**: Simulated, not live market prices.
* **Email OTPs**: Delivered to real email addresses, same as production.
* **Payment Gateway**: Use the sandbox simulation endpoint to trigger payment confirmation.
* **Agentic Wallets**: Testnet chains only. Use the simulation endpoint to generate mock agent transactions.

***

## Sandbox Simulation Endpoints

These endpoints are only available in the sandbox environment and let you simulate events that normally require on-chain activity:

| Endpoint                                     | Description                            |
| -------------------------------------------- | -------------------------------------- |
| `POST /sandbox/simulate-card-spend`          | Simulate a card purchase               |
| `POST /sandbox/generate-card-history`        | Generate mock card transaction history |
| `POST /sandbox/simulate-gateway-payment`     | Mark a gateway payment as paid         |
| `POST /sandbox/simulate-agentic-transaction` | Create a mock agent transaction        |

***

## Environment Variable Pattern

We recommend switching environments with a single variable change:

```bash .env.sandbox theme={null}
YATIVO_API_KEY=yativo_e072b3ef7e30fcb420183aa86ddd8452abd28a9ac8f5d04d
YATIVO_API_SECRET=df8da4d6b855c7e89bd3b4216dd0a1f4b30de1963c9bff0dcd666b15a0f836a5
YATIVO_BASE_URL=https://crypto-sandbox.yativo.com/api
```

```bash .env.production theme={null}
YATIVO_API_KEY=your_production_api_key
YATIVO_API_SECRET=your_production_api_secret
YATIVO_BASE_URL=https://crypto-api.yativo.com/api
```

Your integration code doesn't change — only the environment variables.
