The Upvest Blockchain API

A multi-protocol blockchain API for building blockchain-interacting applications.

Get Started     Tutorial     API Reference

Complex Transactions

Interacting with the blockchain in custom ways

Blockchains allow for all kinds of transactions to be performed (such as smart contract interactions). The Complex Transactions endpoints allow for bespoke payloads to be signed using an Upvest-hosted wallet key and (optionally) broadcast to the blockchain. We offer three different options to facilitate this:

  1. Complex sign and broadcast: you send the relevant transaction parameters (i.e. function calls, variables, etc), and Upvest crafts the raw transaction, signs it, and broadcast it to the blockchain;
  2. Raw sign and broadcast: Upvest signs a pre-constructed raw transaction payload you provide and then broadcasts the signed transaction to the blockchain;
  3. Sign-only: Upvest returns a signature of the hash of your desired transaction payload; you handle the broadcasting of the signed transaction to the blockchain. This is handled by the General Purpose Signing Interface below.

Complex Transactions (Ethereum-only)

The Complex Sign and Broadcast and Raw Sign and Broadcast endpoints (currently in beta) give you complete flexibility to craft any payload you wish to have signed by a particular user's Upvest-hosted wallet. This allows you to sign arbitrary payloads for performing any action on the Ethereum blockchain, including interacting with any smart contract functionality. This signed transaction is then broadcast to the blockchain for you, and can be tracked like any other transaction via the Upvest API.

Code Examples

Code examples for the Complex Transaction endpoints are available here.

General Purpose Signing Interface

The General Purpose Signing Interface (GPSI) is blockchain-agnostic endpoint that gives you the ability to have the hash of any payload signed with a given user's private key; the resulting signature (see example below) is then returned to you to do with as you wish.

  "big_number_format": "base64_bigendian",
  "algorithm": "ECDSA",
  "curve": "secp256k1",
  "public_key": {
    "x": "YY0cw9hcCzkZCa0huZAMToIsJ3cGVbl/nqbKtuQduts=",
    "y": "Rn4cVSwDcBOL79je/9RpUAsEg/PZ6LcbUbc3qiI2JTg="
  "r": "Is/lCtLfXzY3A3+sO9+EW/m92BB0UbQsa+uWA8Oj7Rk=",
  "s": "KUmIX4vwIsQGsnhGzV9jhsCKoDijILGtln3ICDmbNRw=",
  "recover": 1

When validating the signature for Ethereum, remember to take EIP-155 into consideration when calculating the v parameter.

Code Examples

Code examples for using GPSI are available here.

Updated 2 months ago

Complex Transactions

Interacting with the blockchain in custom ways

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.