AMMVote

[Source]

Attention

Automated Market Maker (AMM) functionality is part of the proposed XLS-30d extension to the XRP Ledger protocol. You can use these functions on test networks for now. Until there is an amendment in a stable release, the details documented on these pages are subject to change.

Vote on the trading fee for an Automated Market Maker instance. Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes.

Example AMMVote JSON

Copy
Copied!
{
    "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
    "Asset" : {
        "currency" : "XRP"
    },
    "Asset2" : {
        "currency" : "TST",
        "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
    },
    "Fee" : "10",
    "Flags" : 2147483648,
    "Sequence" : 8,
    "TradingFee" : 600,
    "TransactionType" : "AMMVote"
}

In addition to the common fields, AMMVote transactions use the following fields:

Field JSON Type Internal Type Required? Description
Asset Object STIssue Yes The definition for one of the assets in the AMM's pool. In JSON, this is an object with currency and issuer fields (omit issuer for XRP).
Asset2 Object STIssue Yes The definition for the other asset in the AMM's pool. In JSON, this is an object with currency and issuer fields (omit issuer for XRP).
TradingFee Number UInt16 Yes The proposed fee to vote for, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee.

Error Cases

Besides errors that can occur for all transactions, AMMVote transactions can result in the following transaction result codes:

Error Code Description
tecAMM_EMPTY The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit.
tecAMM_INVALID_TOKENS The sender cannot vote because they do not hold any of this AMM's LP Tokens.
tecAMM_FAILED_VOTE There are already 8 votes from accounts that hold more LP Tokens than the sender of this transaction.
temBAD_FEE The TradingFee from this transaction is not valid.
terNO_AMM The Automated Market Maker instance for the asset pair in this transaction does not exist.