amm_info
The amm_info
method gets information about an Automated Market Maker (AMM) instance.
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.
Request Format
An example of the request format:
There is no commandline syntax for this method. You can use the json method to access this method from the commandline instead.
WebSocket
{ "command": "amm_info", "asset": { "currency": "XRP" }, "asset2": { "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }
JSON-RPC
{ "method": "amm_info", "params": [{ "asset": { "currency": "XRP" }, "asset2": { "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }] }
The request includes the following parameters:
Field | Type | Description |
---|---|---|
asset | Object or String | One of the assets of the AMM to look up, as an object with currency and issuer fields (omit issuer for XRP), like currency amounts. For XRP, you can specify as the string XRP instead of as an object. |
asset2 | Object or String | The other of the assets of the AMM, as an object with currency and issuer fields (omit issuer for XRP), like currency amounts. |
Response Format
An example of a successful response:
WebSocket
{ "result": { "amm": { "amm_account": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "amount": "296890496", "amount2": { "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", "value": "25.81656470648473" }, "asset2_frozen": false, "auction_slot": { "account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", "auth_accounts": [ { "account": "r3f2WpQMsAd8k4Zoijv2PZ78EYFJ2EdvgV" }, { "account": "rnW8FAPgpQgA6VoESnVrUVJHBdq9QAtRZs" } ], "discounted_fee": 0, "expiration": "2023-Jan-26 00:28:40.000000000 UTC", "price": { "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", "issuer": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "value": "0" }, "time_interval": 0 }, "lp_token": { "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", "issuer": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "value": "87533.41976112682" }, "trading_fee": 600, "vote_slots": [ { "account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", "trading_fee": 600, "vote_weight": 9684 } ] }, "ledger_current_index": 316725, "validated": false }, "status": "success", "type": "response" }
JSON-RPC
200 OK { "result": { "amm": { "amm_account": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "amount": "296890496", "amount2": { "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", "value": "25.81656470648473" }, "asset2_frozen": false, "auction_slot": { "account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", "auth_accounts": [ { "account": "r3f2WpQMsAd8k4Zoijv2PZ78EYFJ2EdvgV" }, { "account": "rnW8FAPgpQgA6VoESnVrUVJHBdq9QAtRZs" } ], "discounted_fee": 0, "expiration": "2023-Jan-26 00:28:40.000000000 UTC", "price": { "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", "issuer": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "value": "0" }, "time_interval": 0 }, "lp_token": { "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", "issuer": "rp9E3FN3gNmvePGhYnf414T2TkUuoxu8vM", "value": "87533.41976112682" }, "trading_fee": 600, "vote_slots": [ { "account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", "trading_fee": 600, "vote_weight": 9684 } ] }, "ledger_current_index": 316745, "status": "success", "validated": false } }
The response follows the standard format, with a successful result containing the following fields:
Field | Type | Description |
---|---|---|
amm | Object | An AMM Description Object for the requested asset pair. |
ledger_current_index | Ledger Index | (Omitted if ledger_index is provided instead) The ledger index of the current in-progress ledger, which was used when retrieving this information. |
ledger_hash | Hash | (Omitted if ledger_current_index is provided instead) The identifying hash of the ledger version that was used when retrieving this data. |
ledger_index | Ledger Index | (Omitted if ledger_current_index is provided instead) The ledger index of the ledger version used when retrieving this information. |
validated | Boolean | If true , the ledger used for this request is validated and these results are final; if omitted or set to false , the data is pending and may change. |
AMM Description Object
The amm
field is an object describing the current status of an Automated Market Maker (AMM) in the ledger, and contains the following fields:
Field | Type | Description |
---|---|---|
amm_account | String | The Address of the AMM Account. |
amount | Currency Amount | The total amount of one asset in the AMM's pool. (Note: This could be asset or asset2 from the request.) |
amount2 | Currency Amount | The total amount of the other asset in the AMM's pool. (Note: This could be asset or asset2 from the request.) |
asset_frozen | Boolean | (Omitted for XRP) If true , the amount currency is currently frozen. |
asset2_frozen | Boolean | (Omitted for XRP) If true , the amount2 currency is currently frozen. |
auction_slot | Object | (May be omitted) An Auction Slot Object describing the current auction slot holder, if there is one. |
lp_token | Currency Amount | The total amount of this AMM's LP Tokens outstanding. |
trading_fee | Number | The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee. |
vote_slots | Array | (May be omitted) The current votes for the AMM's trading fee, as Vote Slot Objects. |
Auction Slot Object
The auction_slot
field of the amm
object describes the current auction slot holder of the AMM, and contains the following fields:
Field | Type | Description |
---|---|---|
account | String | The Address of the account that owns the auction slot. |
auth_accounts | Array | A list of additional accounts that the auction slot holder has designated as being eligible of the discounted trading fee. Each member of this array is an object with one field, account , containing the address of the designated account. |
discounted_fee | Number | The discounted trading fee that applies to the auction slot holder, and any eligible accounts, when trading against this AMM. This is always 0. |
expiration | String | The ISO 8601 UTC timestamp after which this auction slot expires. After expired, the auction slot does not apply (but the data can remain in the ledger until another transaction replaces it or cleans it up). |
price | Currency Amount | The amount, in LP Tokens, that the auction slot holder paid to win the auction slot. This affects the price to outbid the current slot holder. |
time_interval | Number | The current 72-minute time interval this auction slot is in, from 0 to 19. The auction slot expires after 24 hours (20 intervals of 72 minutes) and affects the cost to outbid the current holder and how much the current holder is refunded if someone outbids them. |
Vote Slot Objects
Each entry in the vote_slots
array represents one liquidity provider's vote to set the trading fee, and contains the following fields:
Field | Type | Description |
---|---|---|
account | String | The Address of this liquidity provider. |
trading_fee | Number | The trading fee this liquidity provider voted for, in units of 1/100,000. |
vote_weight | Number | How much this liquidity provider's vote counts towards the final trading fee. This is proportional to how much of the AMM's LP Tokens this liquidity provider holds. The value is equal to 100,000 times the number of this LP Tokens this liquidity provider holds, divided by the total number of LP Tokens outstanding. For example, a value of 1000 means that the liquidity provider holds 1% of this AMM's LP Tokens. |
Possible Errors
- Any of the universal error types.
actNotFound
- The AMM for this asset pair does not exist, or an issuing account specified in the request does not exist.invalidParams
- One or more fields are specified incorrectly, or one or more required fields are missing.
See Also
- AMM object - The canonical storage format of the AMM object
- AMMBid - More info on the auction slot and bidding mechanism
- AMMVote - More info on the trading fee voting mechanism