Trustless Work
  • Welcome
    • Why Escrows Matter
    • ๐Ÿ›ค๏ธOur Journey so Far
      • ๐Ÿค”The Problem: Origins of Trustless Work
      • ๐Ÿ‘พThe team comes together
      • ๐Ÿ’กThe Solution: Escrows
      • ๐Ÿ†Key Milestones
        • ๐ŸŒ DraperU Stellar Astro Hacker House: A Pivotal Moment
        • Launching the API V1 at ETH Pura Vida Hackathon
      • ๐Ÿš€Current Programs
        • ๐ŸŒŸDraperU Embark Program
        • ๐Ÿ’ปOD Hack Campaigns
      • ๐Ÿ› ๏ธVertical Development
      • ๐Ÿ”ฎFuture Vision
  • ๐Ÿ“ŒStart Here
    • โ˜€๏ธAbout Trustless Work
      • Vision and Mission
      • Team
  • โš’๏ธUnderstanding Smart Escrows
    • ๐ŸฅธSmart Escrow Design
      • What does a Smart Escrow "look like"?
      • Roles in Trustless Work
      • Escrow Lifecycle
        • Initiation Phase
        • Funding Phase
        • Complete phase
        • Approval phase
        • Release phase
        • Dispute Resolution
    • ๐Ÿ’ตUSDC: The Stablecoin Powering Trustless Work
    • ๐ŸŒŸStellar & Soroban: The Backbone of Trustless Work
  • ๐Ÿ’ปDeveloper Resources
    • ๐Ÿš€Smart Escrow API
    • Quickstart
      • Integration Demo Project
        • Getting Started
        • Entities
        • Configuration
        • Context API
        • Wallet Setup
        • Trustlines
        • Services
        • Helpers
        • Error Handling
        • Forms
          • Initialize Escrow
          • Fund Escrow
          • Get Escrow
          • Get Multiple Escrow Balances
          • Resolve Dispute
          • Change Milestone Status
          • Change Milestone Flag
          • Change Dispute Flag
          • Release Funds
          • Update Escrow
        • UI Components
          • Pages
          • Cards
          • Tabs
          • Utils
      • dApp locally
      • API Fundamental Code
    • API Reference
      • Introduction
      • Authentication
        • Request Api Key
      • Deploy
        • Initialize Escrow
      • Escrows
        • Schema
        • Fund Escrow
        • Get Escrow by Contract ID
        • Resolve Dispute
        • Change Milestone Status
        • Change Milestone Flag
        • Change Dispute Flag
        • Release Funds
        • Update escrow properties
      • Helpers
        • Set Trustline
        • Send Transaction
        • Get Multiple Escrow Balance
    • ๐ŸงฐEssential Tools for Developers
      • Stellar Wallets
        • Freighter Wallet
        • Albedo Wallet
        • xBull Wallet
        • Rabet Wallet
        • Lobstr Wallet
        • Hana Wallet
        • Additional Resources
        • Troubleshooting & FAQs
      • How to Get Testnet Tokens
  • ๐ŸŒUse Cases by Industry
    • Marketplaces & E-commerce
    • Grants, Bounties, and Hackathons
    • P2P Exchanges and OTC Desks
    • Security Deposits
    • Milestone-based Freelance & Contract Work
    • Crowdfunding & Pre-orders
    • DAO Treasury & Working Group Budgets
    • Education & Online Courses
    • Subscription + Performance-based Retainers
  • ๐Ÿค–Using the dApp
    • Step 1: Accessing the Trustless Work Dapp and Logging In
    • Step 2: Creating a Profile and Requesting an API Key
    • Step 3: Creating an Escrow
    • Step 4: Funding an Escrow
    • Step 5: Marking a Milestone as Done โœ…
    • Step 6: Approving the Milestone
    • Step 7: Releasing the Payment
    • Resolving Disputes
  • ๐Ÿดโ€โ˜ ๏ธCommunity
    • ๐ŸŒŽSpotlight: Kindfi
    • ๐Ÿ›ฃ๏ธRoadmap: The Journey Ahead
    • Contributor's Guide
    • ๐Ÿ“‚Open-Source Templates & Developer Tools
  • โœ’๏ธBackground & Theory
    • ๐Ÿ“˜Core Concepts & Escrow Glossary
    • ๐ŸŽ’Historical Context
      • ๐Ÿ“œEscrow History:
        • ๐Ÿ—ฟAncient to Colonial Era
        • ๐ŸฆBanking Era (19th - 20th Century)
        • ๐Ÿ’ปThe Digital Era and Online Escrow
      • โ›“๏ธBlockchain Era: Smart Escrows
  • Links
    • โš’๏ธTrustless Work dApp
    • ๐ŸŒTrustless Work Website
    • ๐Ÿ“ฃTelegram Chat
    • ๐Ÿ’ŽOnly Dust Profile
    • ๐Ÿ‘ฉโ€๐Ÿ’ปSwagger for API
    • ๐Ÿ“œGithub
  • ๐Ÿ“ขAppendices
    • Contact and Support
    • Notion for Startups
    • Meru
Powered by GitBook
LogoLogo

Links

  • Website
On this page

Was this helpful?

Export as PDF
  1. Developer Resources
  2. API Reference
  3. Helpers

Send Transaction

Most Trustless Work endpoints return an unsigned transaction in XDR format. This endpoint is used to sign such unsigned transactions and send them to the Stellar network.

PreviousSet TrustlineNextGet Multiple Escrow Balance

Last updated 29 days ago

Was this helpful?

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Open API

Use Example:

import axios from "axios";

const http = axios.create({
  baseURL: "https://dev.api.trustlesswork.com",
  timeout: 10000,
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer your_api_key`,
  },
});

export const useExample = async () => {
    // Get the signer address
    const { address } = await kit.getAddress();

    const response = await http.post(
      "/any-endpoint",
      {
        // body requested for the endpoint
      },
    ); 
    
    // Get the unsigned transaction hash
    const { unsignedTransaction } = response.data;

    // Sign the transaction by wallet
    const { signedTxXdr } = await signTransaction(unsignedTransaction, {
      address,
      networkPassphrase: WalletNetwork.TESTNET,
    });

    // Send the transaction to Stellar Network  <--------------- THIS
    const tx = await http.post("/helper/send-transaction", {
      signedXdr: signedTxXdr,
    });

    const { data } = tx;

    return data;
}
๐Ÿ’ป
  • Headers
  • Open API
  • POST/helper/send-transaction
  • Use Example:
post
Body
signedXdrstringRequired

The sign's hash. This come from the wallet

Example: AAAAAgAAAAB...
returnEscrowDataIsRequiredbooleanRequired

If a return escrow data is needed (Note: Currently only the endpoints โ€œ/deployer/invoke-deployer-contractโ€ and โ€œ/escrow/update-escrow-by-contract-idโ€ return escrow information.)

Example: true
Responses
200
The transaction has been successfully sent to the Stellar network
application/json
400
Bad request
401
Unauthorized access
429
Too Many Requests
500

Possible errors:

  • The transaction could not be sent to the Stellar network for some unknown reason. Please try again.
application/json
post
POST /helper/send-transaction HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 64

{
  "signedXdr": "AAAAAgAAAAB...",
  "returnEscrowDataIsRequired": true
}
{
  "status": "SUCCESS",
  "message": "The transaction has been successfully sent to the Stellar network.",
  "contractId": "CAATN5D...",
  "escrow": {
    "amount": 50,
    "roles": {
      "approver": "GAWVVSA...",
      "serviceProvider": "GAWVVSA6...",
      "disputeResolver": "GAWVVSA...",
      "receiver": "GAWVVSA...",
      "platformAddress": "GAWVVSA...",
      "releaseSigner": "GAWVVSA..."
    },
    "flags": {
      "dispute": false,
      "release": false,
      "resolve": false
    },
    "description": "This is a sample TW escrow for testing purposes",
    "engagementId": "ENG12345",
    "milestones": [
      {
        "approved_flag": false,
        "description": "Initial milestone",
        "evidence": "",
        "status": "pending"
      },
      {
        "approved_flag": false,
        "description": "Second milestone",
        "evidence": "",
        "status": "pending"
      }
    ],
    "platformFee": 500,
    "title": "Sample TW Escrow",
    "trustline": {
      "address": "CBIELTK...",
      "decimals": 10000000
    },
    "receiverMemo": 90909090
  }
}