Financial Transactions API

Description of endpoints used to construct Financial Transactions on the DeSo blockchain

Send DeSo

POST /api/v0/send-deso

Create a Basic transfer transaction. Basic transfer transactions send DeSo from one used to another. Transaction needs to be signed and submitted through api/v0/submit-transaction before changes come into effect.

A Basic Transfer transaction sends DeSo from the sender to the receiver.

Endpoint implementation in backend.

Example usage in frontend: - Make request to Send DeSo to get a preview of the transaction. - Make request to Send DeSo and sign+submit the transaction. - Use SendDeSo to transfer DeSo to another user.

Request Body

Name
Type
Description

SenderPublicKeyBase58Check*

String

Public key of the sender

RecipientPublicKeyOrUsername*

String

Public key or Username of the recipient

AmountNanos*

int64

transaction amount in nanos - If less than 0, this will create a max spend transaction that will send all funds from Sender to Receiver

MinFeeRateNanosPerKB*

uint64

Rate per KB

TransactionFees

TransactionFee]

Array of

objects that define additional outputs that need to be added to this transaction

{
  "TotalInputNanos": 1999946613,
  "SpendAmountNanos": 1000000000,
  "ChangeAmountNanos": 999946354,
  "FeeNanos": 259,
  "TransactionIDBase58Check": "CbUyAcAiR5C626pSXQ1KCHWxo55FiSsBS66GELxVPPJMT2Q4yjFTA",
  "Transaction": {
    "TxInputs": [ 
      {
        "TxID": [...],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Ajl7GoDroKYGRGUK8Twqb/37vziDDK/DSTenXd1EuM5S",
        "AmountNanos": 1000000000
      },
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 999946354
      }
    ],
    "TxnMeta": {},
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": null,
    "Signature": null,
    "TxnTypeJSON": 2
  },
  "TransactionHex": "025051b0eeda78885641a2340f57b908f475d84ce3b8ce2507815c89e857ef1cce0006caf6e4d44a8575fe235d7d3ffdb1020485526118d3379f5a993a31f5a2823f000202397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce528094ebdc0302aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45f2f0e7dc0302002102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000",
  "TxnHashHex": "df850aef107687e36034e3d298da341fc747d4a663e0a5e98fe3ce05cc10b4be"
}

Buy Or Sell Creator Coin

POST /api/v0/buy-or-sell-creator-coin

Create a buy/sell creator coin transaction. Transaction needs to be signed and submitted through api/v0/submit-transaction before changes come into effect.

A buy creator coin transaction locks DeSo in the creator coin of a creator and in return gives the purchaser creator coins.

A sell creator coin transaction unlocks an amount of DeSo commensurate with the amount of creator coins sold.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Buy Or Sell Creator Coin - Use BuyOrSellCreatorCoin to get a preview of purchase/sale of creator coins - Use BuyOrSellCreatorCoin to buy or sell creator coins

Request Body

Name
Type
Description

MinCreatorCoinExpectedNanos

uint64

Minimum amount of Creator Coins expected when buying creator coins only required for buy transactions

MinFeeRateNanosPerKB*

uint64

Rate per KB

CreatorCoinToSellNanos*

uint64

Amount of Creator Coin to sell only required for sell transactions

TransactionFees

TrasactionFee[]

Array of

objects that define additional outputs that need to be added to this transaction

CreatorPublicKeyBase58Check*

String

Public key of creator whose coin is being purchased

DeSoToAddNanos*

uint64

deprecated

OperationType*

String

"buy" or "sell"

MinDeSoExpectedNanos

uint64

Minimum DeSo expected to be received when selling creator coins only required for sell transactions

DeSoToSellNanos*

uint64

Amount of DeSo to spend purchasing creator coins only required for buy transactions

UpdaterPublicKeyBase58Check*

String

Public key of user purchasing/selling creator coins

InTutorial

Boolean

When true, perform additional checks to ensure user is at the correct point in the tutorial to execute this buy/sell creator coin transaction

{
  "ExpectedDeSoReturnedNanos": 0, // Expected amount of DeSo received from the sale. Will always be 0 for buys.
  "ExpectedCreatorCoinReturnedNanos": 1200, // Expected amount of creator coins received from the purchase. Will always be 0 for sales.
  "FounderRewardGeneratedNanos": 9999664686, // Founders reward generated from this purchase. Will always be 0 for sales.
  "SpendAmountNanos": 1000000000,
  "TotalInputNanos": 1933081867,
  "ChangeAmountNanos": 933081602,
  "FeeNanos": 265,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [... ],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 933081602
      }
    ],
    "TxnMeta": {
      "ProfilePublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF", // Public key of the creator whose coin was purchased in this transaction
      "OperationType": 0, // 0 means buy, 1 means sell
      "DeSoToSellNanos": 1000000000, // Amount of DeSo used to purchase creator coins in this transaction
      "CreatorCoinToSellNanos": 0, // Amount of creator coins sold in this transaction
      "DeSoToAddNanos": 0, // not in use - ignore
      "MinDeSoExpectedNanos": 0, // Minimum DeSo expected from a creator coin sale. This will always be 0 for buys.
      "MinCreatorCoinExpectedNanos": 1000 // Minimum amount of creator coins expected from this purchase. This will always be 0 for sales.
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": null,
    "Signature": null,
    "TxnTypeJSON": 11
  },
  "TransactionHex": "02acc5b6f137be6a9b49fa1e0b20d0b6c5f2a76618628e1cd34fe8dbb198b627f1001ba3390ffb4817f3d5993ef39fd2fc4cfd75312ba67a7ce2f1d083efa0df2e5e000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c4582e4f6bc030b2c2102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45008094ebdc03000000002102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000",
  "TxnHashHex": "69f08986184d99833c40d794d3fdd8861c0be602f15e3021ed771e49c6f7771c"
}

Transfer Creator Coin

POST /api/v0/transfer-creator-coin

Create a transfer creator coin transaction. Transaction needs to be signed and submitted through api/v0/submit-transaction before changes come into effect.

Transfer creator coin transactions sends creator coins owned by the sender to the receiver.

Endpoint implementation in backend.

Example usages in frontend: - Make request to Transfer Creator Coin - Use TransferCreatorCoin to get a preview of a creator coin transfer transaction. - Use TransferCreatorCoin to construct, sign, and submit a creator coin transfer transaction.

Request Body

Name
Type
Description

SenderPublicKeyBase58Check*

String

Public key of user sending creator coins

CreatorPublicKeyBase58Check*

String

Public key of creator whose coins will be sent

ReceiverUsernameOrPublicKeyBase58Check*

String

username or public key of user who will receive creator coins

CreatorCoinToTransferNanos*

uint64

Amount of Creator Coin to transfer

MinFeeRateNanosPerKB*

uint64

Rate per KB

TrasactionFees

TrasactionFee[]

Array of

objects that define additional outputs that need to be added to this transaction

{
  "SpendAmountNanos": 0,
  "TotalInputNanos": 989250936,
  "ChangeAmountNanos": 989250675,
  "FeeNanos": 261,
  "Transaction": {
    "TxInputs": [
      {
        "TxID": [...],
        "Index": 0
      }
    ],
    "TxOutputs": [
      {
        "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
        "AmountNanos": 989250675
      }
    ],
    "TxnMeta": {
      "ProfilePublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF", // Public key of the creator whose coin is being transferred in this transaction
      "CreatorCoinToTransferNanos": 1000000000, // Amount of Creator coins being transferred (in nanos)
      "ReceiverPublicKey": "Ajl7GoDroKYGRGUK8Twqb/37vziDDK/DSTenXd1EuM5S" // Public key of the recipient of the creator coin transfer
    },
    "PublicKey": "Aqo9yNKZ6h5JFN5mSU7T4W7amg1lcZ1SPBqaA8v59gxF",
    "ExtraData": null,
    "Signature": null,
    "TxnTypeJSON": 14
  },
  "TransactionHex": "01f2816e264f381cf153299e0c3cc894ab67687e83b79e55996bdb1c44280aed1d000102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c45f388dbd7030e492102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c458094ebdc032102397b1a80eba0a60644650af13c2a6ffdfbbf38830cafc34937a75ddd44b8ce522102aa3dc8d299ea1e4914de66494ed3e16eda9a0d65719d523c1a9a03cbf9f60c450000",
  "TxnHashHex": "a0e90d5786367855ea2960cd4d8cc3ad81a73c056c7ee62a637ab17aa01320fe"
}

Last updated