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"
// }
Learn More
For a detailed overview of the transaction lifecycle, see the Transaction Guide.
Last updated
Was this helpful?