# Create Basic Transaction

## Introduction

This guide demonstrates how to create a **basic transaction** to send ADA from one address to another. The basic transaction is the simplest form of Cardano transaction, focused solely on transferring the native currency (ADA/Lovelace) **without** additional assets or metadata. With the Anvil API, you can easily create, sign, and submit these transactions with minimal configuration.

For more information on **transactions**, please refer to the [Transaction Overview](/guides/transaction.md).

## Key Features

* Simple ADA transfers between addresses
* Minimal configuration required
* Clean and straightforward API payload

## Requirements

* A Cardano wallet with sufficient ADA
* Recipient wallet address
* Valid API key for authentication

## Full Examples

### Using Next.js and Weld

{% content-ref url="/pages/yONC6pSZfkeixPNmEzsd" %}
[Next.js & Weld](/guides/transaction/create-basic-transaction/nextjs-with-weld.md)
{% endcontent-ref %}

### Using Bash and cURL

{% content-ref url="/pages/4DiIM6JnxjjclE7TtZUp" %}
[Bash & cURL](/guides/transaction/create-basic-transaction/bash-and-curl.md)
{% endcontent-ref %}

### Using TS/JS Fetch

{% content-ref url="/pages/rmXUvXA1P9a3qIeQexoT" %}
[Deno & Fetch](/guides/transaction/create-basic-transaction/node-and-fetch.md)
{% endcontent-ref %}

***

## **Specifications**

### API Endpoint

```
POST /transactions/build
```

### Request Structure

```json
{
  "changeAddress": "<sender_address>",
  "utxos": ['8282...', '8282...', '8282...'],
  "outputs": [
    {
      "address": "<receiver_address>",
      "lovelace": <lovelace_amount>
    }
  ]
}
```

## Best Practices

* Always verify the recipient address before submitting transactions
* Remember that 1 ADA = 1,000,000 Lovelace
* Always provide UTXOs in production See [Selecting UTXOs for Transactions](/guides/transaction/selecting-utxos.md)
* Test transactions on testnet before moving to mainnet
* Consider transaction fees when planning amounts to send
* Keep your API key secure and never expose it in client-side code


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.ada-anvil.io/guides/transaction/create-basic-transaction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
