TS/JS + Fetch

Learn how to create a Cardano transaction that expires after a certain time (TTL) using TypeScript or JavaScript with the Anvil API.

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/tx-with-validity-interval.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,
    },
  ],

  // Optional bounds that determine when the transaction is valid. Can be in POSIX timestamp or Slot number
  // False can be used to disable a bound.
  // If transactions are submitted outside of the validity interval, they will be rejected.
  // Default if not included will be start now and end 2 hours from now.
  validityInterval: {
    start: Math.floor(Date.now() / 1000), // POSIX timestamp for now
    end: Math.floor(Date.now() / 1000) + (5 * 60 * 60), // POSIX timestamp 5 hours from now
  },
};

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

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

// Expected Output:
// {
//   hash: "e33630afd27b720ba9ac2799901cad334fb8bb94549385e3a15f7a0016938df6",
//   complete: "84a600d9010282825820176fbe77e2d1a67ccabc7e1f74aae64b54773ab372069bed91a7ae5c1e2cd00301825820d33a9e1d2345e0647bd01d3b35bb15779fbecbb1a7142f8b8487e6202671cec50101838258390097d20ce7a3003369cf916bafb166fe94a4fcc6af61250abfe377122879773d7df44c3af7e3ad81b8be3cf76a5043a15ecf18e1d3d669d00d1a00989680a300581d60ea2cb2c69f72fc8e3c31f836de3d68772671f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca100d90102818258208bc6baaa47db83c0a0d957d559e4b443a9f7a5757ab3c184cf8c2b2ee21bb6955840064d7d25c6f717b739de266074e753b5d139f50dd8497e2bc4e854a59e889b6516b69e831c4fa64ad4fa09f396a8f0ce4313097f2d57afc59c46b23fcdf68709f5f6",
//   stripped: "84a600d9010282825820176fbe77e2d1a67ccabc7e1f74aae64b54773ab372069bed91a7ae5c1e2cd00301825820d33a9e1d2345e0647bd01d3b35bb15779fbecbb1a7142f8b8487e6202671cec50101831f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca100d90102818258208bc6baaa47db83c0a0d957d559e4b443a9f7a5757ab3c184cf8c2b2ee21bb6955840064d7d25c6f717b739de266074e753b5d139f50dd8497e2bc4e854a59e889b6516b69e831c4fa64ad4fa09f396a8f0ce4313097f2d57afc59c46b23fcdf68709f5f6",
// 1f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca100d90102818258208bc6baaa47db83c0a0d957d559e4b443a9f7a5757ab3c184cf8c2b2ee21bb6955840064d7d25c6f717b739de266074e753b5d139f50dd8497e2bc4e854a59e889b6516b69e831c4fa64ad4fa09f396a8f0ce4313097f2d57afc59c1f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca100d90102818258208bc6baa1f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db1f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca100d90102818258208bc6baaa47db83c0a0d957d559e4b443a9f7a5757ab3c184cf8c2b2ee21bb6955840064d7d25c6f717b739de266074e753b5d139f50dd8497e2bc4e854a59e889b6516b69e831c4fa64ad4fa09f396a8f0ce4313097f2d57afc59c46b23fcdf68709f5f6",
//   stripped: "84a600d9010282825820176fbe77e2d1a67ccabc7e1f74aae64b54773ab372069bed91a7ae5c1e2cd00301825820d33a9e1d2345e0647bd01d3b35bb15779fbecbb1a7142f8b8487e6202671cec50101838258390097d20ce7a3003369cf916bafb166fe94a4fcc6af61250abfe377122879773d7df44c3af7e3ad81b8be3cf76a5043a15ecf18e1d3d669d00d1a00989680a300581d60ea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099c011a001c3a90028201d8184a49616e76696c2d74616782583900d863b90d9b47629c09d2996ec4154a3f8bdbd72d5ecc85ab461854f38fcbfb9e771a928d717bd9877bc6db9a3dfa728330031aa2877c13b41b00000001012454d7021a00030961031a68376957081a683723070ed9010281581cea2cb2c69f72fc8e3c31f836de3d6877267bbdc50311c3e8eecf099ca0f5f6",
//   witnessSet: "a100d90102818258208bc6baaa47db83c0a0d957d559e4b443a9f7a5757ab3c184cf8c2b2ee21bb6955840064d7d25c6f717b739de266074e753b5d139f50dd8497e2bc4e854a59e889b6516b69e831c4fa64ad4fa09f396a8f0ce4313097f2d57afc59c46b23fcdf68709"
// }

Last updated

Was this helpful?