Created
June 30, 2025 11:57
-
-
Save 9oelM/edcd5385b7196022dac75614723b4ed1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "openapi": "3.1.0", | |
| "info": { "title": "FastAPI", "version": "0.1.0" }, | |
| "paths": { | |
| "/generate_wallet": { | |
| "post": { | |
| "summary": "Generate Wallet", | |
| "description": "Parameters required:\n - password (str): The user's password.\n - referral_code (Optional[str]): The user's referral code. Omit if not used.\n\n1) Generate a brand-new mnemonic (SECP256K1).\n2) Create the XRPL Wallet from that mnemonic.\n3) Encrypt the mnemonic and store partial info in Supabase.\n4) Return: mnemonic (plaintext), encrypted_credentials, and classic_address.", | |
| "operationId": "generate_wallet_generate_wallet_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/GenerateWalletRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/GenerateWalletResponse" | |
| } | |
| } | |
| } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/add_wallet": { | |
| "post": { | |
| "summary": "Add Wallet", | |
| "description": "Parameters required:\n - credentials (str): The user's credentials (seed, mnemonic).\n - password (str): The user's password.\n - credential_type (str): \"seed\" | \"mnemonic\" -- We do NOT do private keys.\n - crypto_algorithm (str): \"SECP256K1\" | \"ED25519\" \n - referral_code (Optional[str]): The user's referral code. Omit if not used.\n\nThis process secures and registers wallet credentials by executing the following steps:\n\n1. Encrypt the Credentials:\n - The provided input (which can be a seed phrase, mnemonic) is encrypted.\n \n2. Store Relevant Data in Supabase:\n - password: The user's password.\n - partial_encrypted_credentials: The first 64 characters of the encrypted output, used for quick credential matching without exposing the full encrypted data.\n - decryption_key: The Fernet key required for decrypting the credentials later.\n - credential_type: A label indicating the kind of credentials provided (\"seed\", \"mnemonic\").\n - crypto_algorithm: Specifies the cryptographic algorithm used (e.g., \"SECP256K1\", \"ED25519\").\n \n3. Return the Full Encrypted Credentials:\n - The complete encrypted credentials are sent back to the client, allowing them to securely store and manage their wallet credentials.\n - These complete encrypted credentials are not stored in the backend & they are required in all API calls that require wallet authentication.", | |
| "operationId": "add_wallet_add_wallet_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/AddWalletRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/upload_token_image": { | |
| "post": { | |
| "summary": "Upload Token Image From File", | |
| "description": "Uploads a token image to ImgBB and returns the display_url.\n\nParameters:\n- image: Token image file (PNG, JPG, etc.)\n\nReturns:\n- display_url: The display_url from ImgBB, or None on failure.", | |
| "operationId": "upload_token_image_from_file_upload_token_image_post", | |
| "requestBody": { | |
| "content": { | |
| "multipart/form-data": { | |
| "schema": { | |
| "$ref": "#/components/schemas/Body_upload_token_image_from_file_upload_token_image_post" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/launch_token": { | |
| "post": { | |
| "summary": "Launch Token", | |
| "description": "PARAMETERS:\n- token_name: str # e.g. \"MyToken\" (max 20 characters)\n- currency_code: str # string, converted to hex if > 3 chars (max 10 characters)\n- total_supply: float # total tokens minted \n- initial_amm_deposit_xrp: float # how much XRP allocated to the burned liquidity pool, in XRP not drops\n- dev_allocation: float # e.g. 20 means 20% of total supply\n- amm_fee: int # e.g. 500 = 0.5%, 1000 = 1%, 10 = 0.01%\n- token_description: str # e.g. \"MyToken is a token that will go STRAIGHT to the MOON!!!\" (max 1000 characters)\n- token_icon_url: str # e.g. \"https://example.com/token-icon.png\" (max 1000 characters)\n- token_website_url: str # e.g. \"https://example.com/token-website\" (max 1000 characters)\n- token_x_url: str # e.g. \"https://x.com/token-x\" (max 1000 characters)\n- token_telegram_url: str # e.g. \"https://t.me/token-telegram\" (max 1000 characters)\n\n- encrypted_credentials: str # Stored only in the local browser, the first 64 chars of the encrypted seed is stored in the backend so we can match the decryption key\n- password: str # Stored in local browser & backend\n\n- use_unlocked_escrow: bool # If true, the token will be launched with an unlocked escrow\n- escrow_days: Optional[int] = None # Optional: if use_unlocked_escrow is true, the number of days the escrow will be locked\n- percentage_of_supply_to_escrow: Optional[float] = None # Optional: if use_unlocked_escrow is true, the percentage of the total supply that will be locked in the escrow. Must be lower than dev_allocation.\n\n- admin_password: str # Bypasses dev allocation check and minimum AMM deposit check.\n\n\ndev_allocation must be lower than 50%. dev_allocation must be <= ((initial_amm_deposit_xrp / 10.0) + 10.0) / 2.0. For example, if initial_amm_deposit_xrp = 100, then dev_allocation must be <= 10% OR if initial_amm_deposit_xrp = 300, then dev_allocation must be <= 20%.\n\n\n1) Retrieve the developer wallet using the provided encrypted credentials.\n2) Have the developer wallet fund the FUNDER_WALLET with enough XRP to cover the token creation fee, buffer, and the initial AMM deposit.\n3) Convert the provided currency code to its hexadecimal representation.\n4) Generate a new cold token issuer wallet.\n5) Activate the token issuer wallet by transferring XRP from the FUNDER_WALLET.\n6) Token launch logic.\n7) Blackhole the AMM wallet & issuer wallet.\n8) Complete.\n\nToken Creation Fee = 10 XRP\nMisc Buffer Fee = 3.5 XRP (for tx fees and activation of wallets)\nEscrow Price = Depends on the number of days the escrow will be locked.\nDev wallet MUST contain enough XRP to cover the token creation fee, misc buffer fee, initial AMM deposit, and escrow price (if use_unlocked_escrow is true).\n\nESCROW PRICING IN XRP:\nif days == 1:\n return round(10.0)\nelif days <= 2:\n return round(days * 5.0)\nelif days <= 6:\n return round(days * 2.5)\nelif days <= 29:\n return round(days * 1.5)\nelif days <= 89:\n return round(days * 1.0)\nelif days <= 364:\n return round(days * 0.5)\nelif days <= 999:\n return round(days * 0.25)\nelif days <= 9999:\n return round(days * 0.1)\nelse:\n return 125\n\nTotal XRP required = Token Creation Fee + Misc Buffer Fee + Initial AMM Deposit + Escrow Price (if use_unlocked_escrow is true)", | |
| "operationId": "launch_token_launch_token_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/LaunchTokenRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/set_trustline": { | |
| "post": { | |
| "summary": "Set Trustline", | |
| "description": "Set a trustline for a token.", | |
| "operationId": "set_trustline_set_trustline_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/clear_all_trustlines": { | |
| "post": { | |
| "summary": "Clear All Trustlines", | |
| "operationId": "clear_all_trustlines_clear_all_trustlines_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/sell_all_tokens": { | |
| "post": { | |
| "summary": "Sell All Tokens", | |
| "operationId": "sell_all_tokens_sell_all_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/amm_deposit": { | |
| "post": { | |
| "summary": "Amm Deposit", | |
| "description": "Deposit into an XRPL AMM instance. \ndeposit_type can be \"SINGLE_XRP\", \"SINGLE_TOKEN\", or \"DOUBLE\".\nFor single-sided, one side is zero and the other is an actual value.\nFor token amounts, we pass an IssuedCurrencyAmount object.", | |
| "operationId": "amm_deposit_amm_deposit_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/AmmDepositRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/amm_withdraw": { | |
| "post": { | |
| "summary": "Amm Withdraw", | |
| "description": "Withdraw from an XRPL AMM instance.\nwithdraw_type can be \"SINGLE_XRP\", \"SINGLE_TOKEN\", or \"DOUBLE\".\nFor single-sided withdrawals, one amount is > 0 and the other is zero.", | |
| "operationId": "amm_withdraw_amm_withdraw_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/AmmWithdrawRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/amm_vote": { | |
| "post": { | |
| "summary": "Amm Vote", | |
| "description": "Vote for a new trading fee for an AMM.\ntrading_fee is the exact value in percentage, e.g., 1.0 = 1%, 0.2 = 0.2% fee. Maximum is 1.0", | |
| "operationId": "amm_vote_amm_vote_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/AmmVoteRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_lp_token_info": { | |
| "post": { | |
| "summary": "Get Lp Token Info", | |
| "description": "Retrieves LP token information and user's share of underlying assets.", | |
| "operationId": "get_lp_token_info_get_lp_token_info_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_trades": { | |
| "post": { | |
| "summary": "Get Trades", | |
| "description": "Fetch trades for the user from user_buy_sell_data for a specific token_id.", | |
| "operationId": "get_trades_get_trades_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/GetTradesRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_recent_trades_all_tokens": { | |
| "post": { | |
| "summary": "Get Recent Trades All Tokens", | |
| "description": "parameters:\n - encrypted_credentials (str): The encrypted wallet credentials of the user.\n - password (str): The password.\n\nReturns:\n A JSON response with a list of last 100 recent trades for all tokens.", | |
| "operationId": "get_recent_trades_all_tokens_get_recent_trades_all_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_token_holdings_and_balance": { | |
| "post": { | |
| "summary": "Get Token Holdings And Balance", | |
| "description": "Fetch the user's live portfolio data:\n - Gets live XRP balance & trustlines.\n - Computes token XRP values using AMM reserves.\n - Adds PNL data from Supabase.", | |
| "operationId": "get_token_holdings_and_balance_get_token_holdings_and_balance_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_token_holdings_and_balance_for_wallet": { | |
| "post": { | |
| "summary": "Get Token Holdings And Balance For Wallet", | |
| "description": "Returns live portfolio info for the given wallet address.\nAlways fetches live data from XRPL + AMM and merges in PNL from Supabase.\nIncludes previously held tokens with PNL data even if balance is now 0.", | |
| "operationId": "get_token_holdings_and_balance_for_wallet_get_token_holdings_and_balance_for_wallet_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ClassicAddressAuthRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/update_token_data": { | |
| "post": { | |
| "summary": "Update Token Data", | |
| "description": "Update token metadata for a specified token_id, but only if\nthe caller's wallet is the registered developer of that token.\n\nParameters:\n - token_id (str): The token ID in \"CURRENCY_HEX:ISSUER\" format.\n - token_image_url (str): The new image/icon URL for the token.\n - token_description (str): A textual description of the token.\n - token_name (str): A name/title for the token.\n - token_url_link (str): The official website link for the token.\n - token_x_link (str): The official X (Twitter) link for the token.\n - token_tg_link (str): The official Telegram link for the token.\n\n - encrypted_credentials (str): User's encrypted seed/mnemonic.\n - password (str): User's password.\n\nReturns:\n A JSON response with a success message or an error.", | |
| "operationId": "update_token_data_update_token_data_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/UpdateTokenDataRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/claim_token_ownership": { | |
| "post": { | |
| "summary": "Claim Token Ownership", | |
| "description": "Attempt to claim ownership of a token if:\n 1. The original developer holds 0 tokens.\n 2. The caller is the top holder (excluding AMM) with >10% supply.\n 3. The market cap is below $20,000.\n 3. They pay 25 XRP to the fee wallet.\n -> Then ownership (token_developer) is transferred to the caller, allowing them to update the token data.", | |
| "operationId": "claim_token_ownership_claim_token_ownership_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ClaimTokenOwnershipRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/send_xrp": { | |
| "post": { | |
| "summary": "Send Xrp", | |
| "description": "Send native XRP from the user's wallet to the specified destination.\n\nRequest Body:\n- encrypted_credentials: str\n- xrp_amount: float\n- destination: str (XRP Ledger address)\n- destination_tag: Optional[int]\n- memo: Optional[str]\n\nReturns:\n JSON with:\n - engine_result (str)\n - tx_hash (str)", | |
| "operationId": "send_xrp_send_xrp_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/SendXRPRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/estimate_lp_tokens": { | |
| "post": { | |
| "summary": "Estimate Lp Tokens", | |
| "description": "Calculate the estimated number of LP tokens to be issued or burned in the AMM pool based on the specified deposit or withdrawal amounts.\n\nParameters:\n token_id (str): Identifier for the AMM pool token in the format \"CURRENCY_HEX:ISSUER\".\n xrp_amount (float): The XRP amount to be deposited or withdrawn.\n token_amount (float): The corresponding token amount to be deposited or withdrawn.\n encrypted_credentials (str): The encrypted credentials of the wallet.\n password (str): The password of the wallet.\n\nReturns:\n dict: A dictionary containing:\n - estimated_lp_tokens (float): The computed LP tokens for the transaction.\n - xrp_amount (float): The XRP amount provided in the request.\n - token_amount (float): The token amount provided in the request.\n - token_id (str): The original token identifier.", | |
| "operationId": "estimate_lp_tokens_estimate_lp_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/EstimateLpTokensRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/estimate_withdrawal_from_lp_tokens": { | |
| "post": { | |
| "summary": "Estimate Withdrawal From Lp Tokens", | |
| "description": "Estimate the amount of XRP and tokens (and their USD values) the user would receive\nif they withdrew their LP tokens from an AMM pool.\n\nParameters:\n req (TokenIdAuthRequest): Object containing:\n - token_id (str): Format \"CURRENCY_HEX:ISSUER\" specifying the token\n - encrypted_credentials (str): The user's encrypted wallet credentials\n - password (str): The password to decrypt the wallet\n\nReturns:\n dict: {\n \"estimated_xrp\": float, # Amount of XRP to receive in LP\n \"estimated_token\": float, # Amount of token to receive in LP\n \"estimated_xrp_usd\": float, # USD value of XRP in LP\n \"estimated_token_usd\": float, # USD value of token in LP\n \"total_value_usd\": float, # Total USD value of LP tokens\n \"user_lp_tokens\": float # User's LP token balance\n }", | |
| "operationId": "estimate_withdrawal_from_lp_tokens_estimate_withdrawal_from_lp_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/expected_tokens_received_from_buy": { | |
| "post": { | |
| "summary": "Expected Tokens Received From Buy Api", | |
| "description": "Calculate how many tokens you would receive by spending `xrp_amount` XRP\ninto the on-ledger XRPL AMM for `token_id` (currency_hex:issuer).\nUses constant-product formula from the actual reserves.", | |
| "operationId": "expected_tokens_received_from_buy_api_expected_tokens_received_from_buy_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ExpectedTokensReceivedFromBuyRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "number", | |
| "title": "Response Expected Tokens Received From Buy Api Expected Tokens Received From Buy Post" | |
| } | |
| } | |
| } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/expected_xrp_received_from_sell": { | |
| "post": { | |
| "summary": "Expected Xrp Received From Sell Api", | |
| "description": "Calculate how many XRP you would receive by selling `token_amount` IOUs\ninto the on-ledger XRPL AMM for `token_id` (currency_hex:issuer).\nUses the constant-product formula from the actual reserves,\nincluding any AMM trading fee if present.", | |
| "operationId": "expected_xrp_received_from_sell_api_expected_xrp_received_from_sell_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ExpectedXrpReceivedFromSellRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "number", | |
| "title": "Response Expected Xrp Received From Sell Api Expected Xrp Received From Sell Post" | |
| } | |
| } | |
| } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/update_pre_snipe": { | |
| "post": { | |
| "summary": "Update Pre Snipe", | |
| "description": "Update the pre-snipe settings for a user.\n\nStore encrypted_credentials + password instead of full_encrypted_seed.", | |
| "operationId": "update_pre_snipe_update_pre_snipe_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/UpdatePreSnipeRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/update_copytrade": { | |
| "post": { | |
| "summary": "Update Copytrade", | |
| "description": "Update the copytrade settings for a user.\n\n1) Validate user's wallet credentials\n2) Double-encrypt credentials, upsert into copytrade_settings\n3) For each 'target_wallet', ensure it's in copytrade_wallets with token_holdings", | |
| "operationId": "update_copytrade_update_copytrade_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/UpdateCopytradeRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_all_trustlines": { | |
| "post": { | |
| "summary": "Get All Trustlines Api", | |
| "description": "Get all trustlines for a user's wallet.", | |
| "operationId": "get_all_trustlines_api_get_all_trustlines_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_copytrade_details": { | |
| "post": { | |
| "summary": "Get Copytrade Details", | |
| "description": "Fetch this user's copytrade settings from the redis cache, excluding sensitive fields.\n\nReturns the settings without:\n- buy_sell_history (use get_copytrade_txs to get this)", | |
| "operationId": "get_copytrade_details_get_copytrade_details_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_copytrade_txs": { | |
| "post": { | |
| "summary": "Get Copytrade Txs", | |
| "description": "Fetch the buy/sell history of copytrades for the user's wallet from Redis.\n\nSteps:\n 1) Decrypt user's wallet using encrypted_credentials + password.\n 2) Fetch their copytrade settings from Redis.\n 3) Return the `buy_sell_history` field if it exists.", | |
| "operationId": "get_copytrade_txs_get_copytrade_txs_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/claim_pre_snipe": { | |
| "post": { | |
| "summary": "Claim Pre Snipe", | |
| "description": "Claim your pre-snipe tokens allocated during a pre-snipe event.", | |
| "operationId": "claim_pre_snipe_claim_pre_snipe_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_pre_sniped_tokens": { | |
| "post": { | |
| "summary": "Get Pre Sniped Tokens", | |
| "description": "Get the pre-sniped tokens all tokens for a users classic address. It will return the tokens that the user has pre-sniped \nand if the tokens are claimed or not.\n\nWe will get this data from the sniper_allocations table.", | |
| "operationId": "get_pre_sniped_tokens_get_pre_sniped_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/upgrade_to_premium_wallet": { | |
| "post": { | |
| "summary": "Upgrade To Premium Wallet", | |
| "description": "Upgrade a user's wallet to Premium status:\n - Validate credentials.\n - If already premium, skip.\n - Deduct ~$5 USD in XRP from the user's wallet.\n - Send to the fee wallet.\n - Mark user as premium in wallet_configs.", | |
| "operationId": "upgrade_to_premium_wallet_upgrade_to_premium_wallet_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_premium_wallet_price_xrp": { | |
| "post": { | |
| "summary": "Get Premium Wallet Price Xrp", | |
| "description": "Returns the price in XRP for a premium wallet.", | |
| "operationId": "get_premium_wallet_price_xrp_get_premium_wallet_price_xrp_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/check_if_premium_wallet": { | |
| "post": { | |
| "summary": "Check If Premium Wallet", | |
| "description": "Returns True if the user's wallet is a premium wallet, False otherwise.", | |
| "operationId": "check_if_premium_wallet_check_if_premium_wallet_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_premium_time_remaining": { | |
| "post": { | |
| "summary": "Get Premium Time Remaining", | |
| "description": "Returns a dictionary with days, hours, minutes, seconds remaining\non the user's premium wallet subscription. Returns None if:\n- Not a premium wallet\n- premium_start_time is missing or invalid", | |
| "operationId": "get_premium_time_remaining_get_premium_time_remaining_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/vote_for_token": { | |
| "post": { | |
| "summary": "Vote For Token", | |
| "description": "Allow a user to vote for a token once every 24 hours.\n\n- Validates the user's credentials.\n- Ensures they have not voted in the past 24 hours.\n- If allowed, increments the `current_week_standing_votes` in `token_votes` for the selected token.\n- Upserts their last vote timestamp in the `wallet_votes` table.\n\nReturns:\n JSON response indicating success or failure.", | |
| "operationId": "vote_for_token_vote_for_token_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_xrp_value_in_usd": { | |
| "post": { | |
| "summary": "Get Xrp Value In Usd Endpoint", | |
| "description": "No parameters\n\nReturns:\n float", | |
| "operationId": "get_xrp_value_in_usd_endpoint_get_xrp_value_in_usd_post", | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| } | |
| } | |
| } | |
| }, | |
| "/resolve_token_from_amm_token_id": { | |
| "post": { | |
| "summary": "Resolve Token From Amm Token Id", | |
| "description": "Resolve an amm_token_id to its originating token_id.\n\n1. Validates the user's credentials.\n2. Checks global cache first.\n3. If not found, queries Supabase for the mapping.\n\nReturns:\n {\n \"token_id\": \"CURRENCY_HEX:ISSUER\"\n }", | |
| "operationId": "resolve_token_from_amm_token_id_resolve_token_from_amm_token_id_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/buy_token": { | |
| "post": { | |
| "summary": "Buy Token", | |
| "description": "Buy a token using XRP with fixed fee and pre-fetched sequence number.", | |
| "operationId": "buy_token_buy_token_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/BuyTokenRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/sell_token": { | |
| "post": { | |
| "summary": "Sell Token", | |
| "description": "Sell tokens", | |
| "operationId": "sell_token_sell_token_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/SellTokenRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/clear_trustline": { | |
| "post": { | |
| "summary": "Clear Trustline", | |
| "description": "Clear a trustline for a token.", | |
| "operationId": "clear_trustline_clear_trustline_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/TokenIdAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/send_tokens": { | |
| "post": { | |
| "summary": "Send Tokens", | |
| "description": "Send issued tokens (IOUs) from the user's wallet to the specified destination.\n\nRequest Body:\n- encrypted_credentials: str\n- password: str\n- token_id: str (\"CURRENCY_HEX:ISSUER\")\n- token_amount: float\n- destination: str (XRP Ledger address)\n- destination_tag: Optional[int]\n- memo: Optional[str]\n\nReturns:\n JSON with:\n - engine_result (str)\n - tx_hash (str)", | |
| "operationId": "send_tokens_send_tokens_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/SendTokensRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_referral_code": { | |
| "post": { | |
| "summary": "Get Referral Code", | |
| "description": "Returns the referral code associated with a wallet.\n\nParameters:\n- encrypted_credentials: str\n- password: str\n\nReturns:\n- referral_code: str", | |
| "operationId": "get_referral_code_get_referral_code_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/update_tx_history": { | |
| "post": { | |
| "summary": "Update Tx History", | |
| "description": "Manually trigger a refresh of a target wallet's buy/sell trade history\nusing XRPL account_tx pagination logic. This data is used to calculate PNL.\n\nPremium wallets only. Uses Redis lock to prevent concurrent ingestion.\n\nParameters:\n- classic_address: str\n- encrypted_credentials: str\n- password: str\n\nReturns:\n- JSON message confirming ingestion has started or completed.", | |
| "operationId": "update_tx_history_update_tx_history_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ClassicAddressAuthRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/get_top_traders": { | |
| "post": { | |
| "summary": "Get Top Traders", | |
| "description": "Returns a list of top traders sorted by total PNL.", | |
| "operationId": "get_top_traders_get_top_traders_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/WalletAuthRequest" } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/debug/concurrency": { | |
| "get": { | |
| "summary": "Debug Concurrency", | |
| "description": "Returns a dictionary of currently active async functions tracked via Redis.", | |
| "operationId": "debug_concurrency_debug_concurrency_get", | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| } | |
| } | |
| } | |
| }, | |
| "/admin/update_developer_address_for_token": { | |
| "post": { | |
| "summary": "Update Developer Address For Token", | |
| "description": "Admin-only endpoint to update the token_developer field for a token.\n\nParameters:\n - admin_password: str \n - token_id: str (CURRENCY_HEX:ISSUER)\n - new_developer_wallet: str (the new wallet address)\n\nReturns:\n A success message or an error.", | |
| "operationId": "update_developer_address_for_token_admin_update_developer_address_for_token_post", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/UpdateDeveloperRequest" | |
| } | |
| } | |
| }, | |
| "required": true | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Successful Response", | |
| "content": { "application/json": { "schema": {} } } | |
| }, | |
| "422": { | |
| "description": "Validation Error", | |
| "content": { | |
| "application/json": { | |
| "schema": { "$ref": "#/components/schemas/HTTPValidationError" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "components": { | |
| "schemas": { | |
| "AddWalletRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "credentials": { "type": "string", "title": "Credentials" }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "credential_type": { "type": "string", "title": "Credential Type" }, | |
| "crypto_algorithm": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Crypto Algorithm" | |
| }, | |
| "referral_code": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Referral Code" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["credentials", "credential_type"], | |
| "title": "AddWalletRequest" | |
| }, | |
| "AmmDepositRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "deposit_type": { "type": "string", "title": "Deposit Type" }, | |
| "xrp_amount": { | |
| "type": "number", | |
| "title": "Xrp Amount", | |
| "default": 0.0 | |
| }, | |
| "token_amount": { | |
| "type": "number", | |
| "title": "Token Amount", | |
| "default": 0.0 | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id", "deposit_type"], | |
| "title": "AmmDepositRequest" | |
| }, | |
| "AmmVoteRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "trading_fee": { "type": "number", "title": "Trading Fee" } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id", "trading_fee"], | |
| "title": "AmmVoteRequest" | |
| }, | |
| "AmmWithdrawRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "withdraw_type": { "type": "string", "title": "Withdraw Type" }, | |
| "xrp_amount": { | |
| "type": "number", | |
| "title": "Xrp Amount", | |
| "default": 0.0 | |
| }, | |
| "token_amount": { | |
| "type": "number", | |
| "title": "Token Amount", | |
| "default": 0.0 | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id", "withdraw_type"], | |
| "title": "AmmWithdrawRequest" | |
| }, | |
| "Body_upload_token_image_from_file_upload_token_image_post": { | |
| "properties": { | |
| "image": { "type": "string", "format": "binary", "title": "Image" } | |
| }, | |
| "type": "object", | |
| "required": ["image"], | |
| "title": "Body_upload_token_image_from_file_upload_token_image_post" | |
| }, | |
| "BuyTokenRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "slippage_percentage": { | |
| "type": "number", | |
| "title": "Slippage Percentage", | |
| "default": 1.0 | |
| }, | |
| "copytrade": { | |
| "anyOf": [{ "type": "boolean" }, { "type": "null" }], | |
| "title": "Copytrade", | |
| "default": false | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id", "xrp_amount"], | |
| "title": "BuyTokenRequest" | |
| }, | |
| "ClaimTokenOwnershipRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["token_id", "encrypted_credentials"], | |
| "title": "ClaimTokenOwnershipRequest" | |
| }, | |
| "ClassicAddressAuthRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "classic_address": { "type": "string", "title": "Classic Address" } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "classic_address"], | |
| "title": "ClassicAddressAuthRequest" | |
| }, | |
| "CopyWalletConfig": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "target_wallet": { "type": "string", "title": "Target Wallet" }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "copytrading_enabled": { | |
| "type": "boolean", | |
| "title": "Copytrading Enabled" | |
| }, | |
| "copysell_enabled": { "type": "boolean", "title": "Copysell Enabled" } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "target_wallet", | |
| "xrp_amount", | |
| "copytrading_enabled", | |
| "copysell_enabled" | |
| ], | |
| "title": "CopyWalletConfig" | |
| }, | |
| "EstimateLpTokensRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "token_amount": { "type": "number", "title": "Token Amount" } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "encrypted_credentials", | |
| "token_id", | |
| "xrp_amount", | |
| "token_amount" | |
| ], | |
| "title": "EstimateLpTokensRequest" | |
| }, | |
| "ExpectedTokensReceivedFromBuyRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "token_id": { "type": "string", "title": "Token Id" } | |
| }, | |
| "type": "object", | |
| "required": ["xrp_amount", "token_id"], | |
| "title": "ExpectedTokensReceivedFromBuyRequest" | |
| }, | |
| "ExpectedXrpReceivedFromSellRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "token_amount": { "type": "number", "title": "Token Amount" }, | |
| "token_id": { "type": "string", "title": "Token Id" } | |
| }, | |
| "type": "object", | |
| "required": ["token_amount", "token_id"], | |
| "title": "ExpectedXrpReceivedFromSellRequest" | |
| }, | |
| "GenerateWalletRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "referral_code": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Referral Code" | |
| } | |
| }, | |
| "type": "object", | |
| "title": "GenerateWalletRequest" | |
| }, | |
| "GenerateWalletResponse": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "mnemonic": { "type": "string", "title": "Mnemonic" }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "classic_address": { "type": "string", "title": "Classic Address" } | |
| }, | |
| "type": "object", | |
| "required": ["mnemonic", "encrypted_credentials", "classic_address"], | |
| "title": "GenerateWalletResponse" | |
| }, | |
| "GetTradesRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["token_id", "encrypted_credentials"], | |
| "title": "GetTradesRequest" | |
| }, | |
| "HTTPValidationError": { | |
| "properties": { | |
| "detail": { | |
| "items": { "$ref": "#/components/schemas/ValidationError" }, | |
| "type": "array", | |
| "title": "Detail" | |
| } | |
| }, | |
| "type": "object", | |
| "title": "HTTPValidationError" | |
| }, | |
| "LaunchTokenRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "token_name": { "type": "string", "title": "Token Name" }, | |
| "currency_code": { "type": "string", "title": "Currency Code" }, | |
| "total_supply": { "type": "number", "title": "Total Supply" }, | |
| "initial_amm_deposit_xrp": { | |
| "type": "number", | |
| "title": "Initial Amm Deposit Xrp" | |
| }, | |
| "dev_allocation": { "type": "number", "title": "Dev Allocation" }, | |
| "amm_fee": { "type": "integer", "title": "Amm Fee" }, | |
| "token_description": { | |
| "type": "string", | |
| "title": "Token Description" | |
| }, | |
| "token_icon_url": { "type": "string", "title": "Token Icon Url" }, | |
| "token_website_url": { | |
| "type": "string", | |
| "title": "Token Website Url" | |
| }, | |
| "token_x_url": { "type": "string", "title": "Token X Url" }, | |
| "token_telegram_url": { | |
| "type": "string", | |
| "title": "Token Telegram Url" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "use_unlocked_escrow": { | |
| "type": "boolean", | |
| "title": "Use Unlocked Escrow" | |
| }, | |
| "escrow_days": { | |
| "anyOf": [{ "type": "integer" }, { "type": "null" }], | |
| "title": "Escrow Days" | |
| }, | |
| "percentage_of_supply_to_escrow": { | |
| "anyOf": [{ "type": "number" }, { "type": "null" }], | |
| "title": "Percentage Of Supply To Escrow" | |
| }, | |
| "admin_password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Admin Password" | |
| } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "token_name", | |
| "currency_code", | |
| "total_supply", | |
| "initial_amm_deposit_xrp", | |
| "dev_allocation", | |
| "amm_fee", | |
| "token_description", | |
| "token_icon_url", | |
| "token_website_url", | |
| "token_x_url", | |
| "token_telegram_url", | |
| "encrypted_credentials", | |
| "use_unlocked_escrow" | |
| ], | |
| "title": "LaunchTokenRequest" | |
| }, | |
| "SellTokenRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "token_amount": { "type": "number", "title": "Token Amount" }, | |
| "slippage_percentage": { | |
| "type": "number", | |
| "title": "Slippage Percentage", | |
| "default": 1.0 | |
| }, | |
| "clear_trustline": { | |
| "type": "boolean", | |
| "title": "Clear Trustline", | |
| "default": false | |
| }, | |
| "copytrade": { | |
| "anyOf": [{ "type": "boolean" }, { "type": "null" }], | |
| "title": "Copytrade", | |
| "default": false | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id", "token_amount"], | |
| "title": "SellTokenRequest" | |
| }, | |
| "SendTokensRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "token_amount": { "type": "number", "title": "Token Amount" }, | |
| "destination": { "type": "string", "title": "Destination" }, | |
| "destination_tag": { | |
| "anyOf": [{ "type": "integer" }, { "type": "null" }], | |
| "title": "Destination Tag" | |
| }, | |
| "memo": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Memo" | |
| } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "encrypted_credentials", | |
| "token_id", | |
| "token_amount", | |
| "destination" | |
| ], | |
| "title": "SendTokensRequest" | |
| }, | |
| "SendXRPRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "destination": { "type": "string", "title": "Destination" }, | |
| "destination_tag": { | |
| "anyOf": [{ "type": "integer" }, { "type": "null" }], | |
| "title": "Destination Tag" | |
| }, | |
| "memo": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Memo" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "xrp_amount", "destination"], | |
| "title": "SendXRPRequest" | |
| }, | |
| "TokenIdAuthRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "token_id"], | |
| "title": "TokenIdAuthRequest" | |
| }, | |
| "UpdateCopytradeRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "enabled": { "type": "boolean", "title": "Enabled" }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "wallets_to_copy": { | |
| "items": { "$ref": "#/components/schemas/CopyWalletConfig" }, | |
| "type": "array", | |
| "title": "Wallets To Copy" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["enabled", "encrypted_credentials", "wallets_to_copy"], | |
| "title": "UpdateCopytradeRequest" | |
| }, | |
| "UpdateDeveloperRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "admin_password": { "type": "string", "title": "Admin Password" }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "new_developer_wallet": { | |
| "type": "string", | |
| "title": "New Developer Wallet" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["admin_password", "token_id", "new_developer_wallet"], | |
| "title": "UpdateDeveloperRequest" | |
| }, | |
| "UpdatePreSnipeRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "xrp_amount": { "type": "number", "title": "Xrp Amount" }, | |
| "enabled": { "type": "boolean", "title": "Enabled" } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials", "xrp_amount", "enabled"], | |
| "title": "UpdatePreSnipeRequest" | |
| }, | |
| "UpdateTokenDataRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| }, | |
| "token_id": { "type": "string", "title": "Token Id" }, | |
| "token_image_url": { "type": "string", "title": "Token Image Url" }, | |
| "token_description": { | |
| "type": "string", | |
| "title": "Token Description" | |
| }, | |
| "token_name": { "type": "string", "title": "Token Name" }, | |
| "token_url_link": { "type": "string", "title": "Token Url Link" }, | |
| "token_x_link": { "type": "string", "title": "Token X Link" }, | |
| "token_tg_link": { "type": "string", "title": "Token Tg Link" } | |
| }, | |
| "type": "object", | |
| "required": [ | |
| "encrypted_credentials", | |
| "token_id", | |
| "token_image_url", | |
| "token_description", | |
| "token_name", | |
| "token_url_link", | |
| "token_x_link", | |
| "token_tg_link" | |
| ], | |
| "title": "UpdateTokenDataRequest" | |
| }, | |
| "ValidationError": { | |
| "properties": { | |
| "loc": { | |
| "items": { "anyOf": [{ "type": "string" }, { "type": "integer" }] }, | |
| "type": "array", | |
| "title": "Location" | |
| }, | |
| "msg": { "type": "string", "title": "Message" }, | |
| "type": { "type": "string", "title": "Error Type" } | |
| }, | |
| "type": "object", | |
| "required": ["loc", "msg", "type"], | |
| "title": "ValidationError" | |
| }, | |
| "WalletAuthRequest": { | |
| "properties": { | |
| "cf_token": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Cf Token" | |
| }, | |
| "encrypted_credentials": { | |
| "type": "string", | |
| "title": "Encrypted Credentials" | |
| }, | |
| "password": { | |
| "anyOf": [{ "type": "string" }, { "type": "null" }], | |
| "title": "Password", | |
| "default": "Not Set" | |
| } | |
| }, | |
| "type": "object", | |
| "required": ["encrypted_credentials"], | |
| "title": "WalletAuthRequest" | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment