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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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