TS/JS + Fetch

Learn how to create a basic Cardano transaction using TypeScript or JavaScript with the Anvil API. This guide provides a complete code example for building a transaction.

Need a wallet address?

You can use the Anvil Wallet CLI to generate a wallet and get an address for these examples.

https://github.com/Cardano-Forge/anvil-api-examples/blob/main/utils/constant.ts
// See Authentication page for API key details.
export const X_API_KEY = "testnet_EyrkvCWDZqjkfLSe1pxaF0hXxUcByHEhHuXIBjt9";
export const NETWORK = "preprod";
export const API_URL = `https://${NETWORK}.api.ada-anvil.app/v2/services`;
export const HEADERS = {
  "Content-Type": "application/json",
  "x-api-key": X_API_KEY,
};
https://github.com/Cardano-Forge/anvil-api-examples/blob/main/documentation-references/basic-tx.ts
import { API_URL, HEADERS } from "../utils/constant.ts";

const SENDER_ADDR =
  "addr_test1qrvx8wgdndrk98qf62vka3q4fglchk7h940vepdtgcv9fuu0e0aeuac6j2xhz77esaaudku68ha89qesqvd29pmuzw6qk8xkcn";
const RECEIVER_ADDR =
  "addr_test1qztayr885vqrx6w0j946lvtxl622flxx4asj2z4ludm3y2rewu7hmazv8tm78tvphzlream22pp6zhk0rrsa84nf6qxsrua9nh";

// 10 ADA => 1ADA = 1'000'000LOVELACE
const LOVELACE_AMOUNT = 10_000_000;

const BODY = {
  changeAddress: SENDER_ADDR,
  outputs: [
    {
      address: RECEIVER_ADDR,
      lovelace: LOVELACE_AMOUNT,
    },
  ],
};

const response = await fetch(`${API_URL}/transactions/build`, {
  method: "POST",
  headers: HEADERS,
  body: JSON.stringify(BODY),
});

console.log(await response.json());

// Expected Output:
// {
//   hash: "ee30aa1c4236f0626692d542c6d6b76fcd4afbb7df38bdd37402a441288aa372",
//   complete: "84a600d9010282825820557a0804947569e286b0c98d859858bb5fc0697dc8fbb86b1c5d28ff7152a2a001825820885b33dddff0adfad65435e01b847f2c8c8b64f9f7b7bd0565e123d93603ccc801018382583900debb399ffcdeca27f269b19e377f0ae84d40583d58195616d9e3a5a275bc01dcc1082fbe7084941c26fefe470aefaf832a7a5a42360d43b51a00989680a300581d60db28e60ecb4dc9458905651969fdfa8851163803b5a9b5de17c40ee8011a00155cc0028201d8184a49616e76696c2d74616782583900c8d25b5c76b19bda9c88a0120a2dbcdc2ddd3f82921aa98ca35854285139e81456c1b4e2f0af22c1e94ff22ea648588b03a7c7914b6eb2561b000000018c9ba8ea021a00030961031a0522158c081a0521f96c0ed9010281581cdb28e60ecb4dc9458905651969fdfa8851163803b5a9b5de17c40ee8a100d9010281825820a6e650fb8808b16fc45f3bc53d713832a0396c9057c3e84f38e4e29b615cea035840a62c94a5be1879c50f03a6e29b62aaa33e75e0cd52993fcc75fe39760d5350dbbc252c6fb2681a6c3aa7b101b11668cd924a226341fa32c697d0b8c18b2a6f02f5f6",
//   stripped: "84a600d9010282825820557a0804947569e286b0c98d859858bb5fc0697dc8fbb86b1c5d28ff7152a2a001825820885b33dddff0adfad65435e01b847f2c8c8b64f9f7b7bd0565e123d93603ccc801018382583900debb399ffcdeca27f269b19e377f0ae84d40583d58195616d9e3a5a275bc01dcc1082fbe7084941c26fefe470aefaf832a7a5a42360d43b51a00989680a300581d60db28e60ecb4dc9458905651969fdfa8851163803b5a9b5de17c40ee8011a00155cc0028201d8184a49616e76696c2d74616782583900c8d25b5c76b19bda9c88a0120a2dbcdc2ddd3f82921aa98ca35854285139e81456c1b4e2f0af22c1e94ff22ea648588b03a7c7914b6eb2561b000000018c9ba8ea021a00030961031a0522158c081a0521f96c0ed9010281581cdb28e60ecb4dc9458905651969fdfa8851163803b5a9b5de17c40ee8a0f5f6",
//   witnessSet: "a100d9010281825820a6e650fb8808b16fc45f3bc53d713832a0396c9057c3e84f38e4e29b615cea035840a62c94a5be1879c50f03a6e29b62aaa33e75e0cd52993fcc75fe39760d5350dbbc252c6fb2681a6c3aa7b101b11668cd924a226341fa32c697d0b8c18b2a6f02"
// }

Last updated

Was this helpful?