Skip to main content
The Transaction API prepares Solana transactions for Swig wallet creation, transfers, swaps, and recovery. It does not replace required client authority signatures; responses include signature requests when the client must sign.

Auth

Use an API key:
Authorization: Bearer sk_your_api_key

Common request fields

FieldTypeDescription
networkenumNETWORK_DEVNET or NETWORK_MAINNET
feePayerstringFee payer public key used in the prepared Solana transaction
swigAddressstringSwig config address for existing-wallet operations
requesterAuthorityobjectWallet authority requesting the operation

Prepared transaction response

Most endpoints return a prepared transaction or a response containing prepared transactions.
FieldTypeDescription
transactionbase64 stringSerialized unsigned or partially signed Solana transaction
transactionEncodingenumCurrently TRANSACTION_ENCODING_BASE64
walletobjectswigConfigAddress and walletAddress when known
expiresAttimestampExpiration for the prepared transaction
recentBlockhashstringRecent blockhash used in the transaction
kindenumPrepared transaction category
signatureRequestsarrayClient authority signatures required before submission

Prepare operations

POST /transaction/prepare batches one or more operations for an existing Swig.
{
  "network": "NETWORK_DEVNET",
  "feePayer": "FeePayerPublicKey",
  "swigAddress": "SwigConfigAddress",
  "requesterAuthority": {
    "ed25519": { "publicKey": "RequesterPublicKey" }
  },
  "operations": [
    {
      "transferSol": {
        "destination": "DestinationPublicKey",
        "lamports": "1000000"
      }
    }
  ]
}

Create a wallet

POST /transaction/wallet/create
{
  "network": "NETWORK_DEVNET",
  "feePayer": "FeePayerPublicKey",
  "policyId": "policy_123",
  "initialUser": {
    "ed25519": { "publicKey": "InitialUserPublicKey" }
  }
}
If policyId is omitted, initialUser is required and the API creates a no-recovery wallet policy for the caller’s organization.

Transfer SOL

POST /transaction/transfer/sol
{
  "network": "NETWORK_DEVNET",
  "feePayer": "FeePayerPublicKey",
  "swigAddress": "SwigConfigAddress",
  "requesterAuthority": {
    "ed25519": { "publicKey": "RequesterPublicKey" }
  },
  "destination": "DestinationPublicKey",
  "lamports": "1000000"
}

Transfer SPL token

POST /transaction/transfer/spl-token
{
  "network": "NETWORK_DEVNET",
  "feePayer": "FeePayerPublicKey",
  "swigAddress": "SwigConfigAddress",
  "requesterAuthority": {
    "ed25519": { "publicKey": "RequesterPublicKey" }
  },
  "mint": "MintAddress",
  "destinationOwner": "DestinationOwnerPublicKey",
  "amount": "1000000"
}

Jupiter swap

POST /transaction/swap/jupiter
{
  "network": "NETWORK_DEVNET",
  "feePayer": "FeePayerPublicKey",
  "swigAddress": "SwigConfigAddress",
  "requesterAuthority": {
    "ed25519": { "publicKey": "RequesterPublicKey" }
  },
  "inputMint": "InputMintAddress",
  "outputMint": "OutputMintAddress",
  "amount": "1000000",
  "slippageBps": 50,
  "mode": "ExactIn"
}

Recovery

Recovery endpoints prepare transactions for the guardian flow.
EndpointRequired purpose fields
/transaction/wallet/recovery-authority/addswigAddress, requesterAuthority
/transaction/recovery/configureswigAddress, guardianPubkey, delaySeconds, optional targetRoleId
/transaction/recovery/startswigAddress, guardianPubkey or guardianSwigAddress, newAuthority, newAuthorityKind
/transaction/recovery/cancelswigAddress, requesterAuthority
/transaction/recovery/executeswigAddress, newAuthority, newAuthorityKind