Mochi Bot
  • 🌈INTRODUCTION
    • About Mochi Bot
    • Official Links
  • 🤖Getting Started
    • Basic Bot Setup
    • Permission & Prefix
    • FAQ & Troubleshoot
  • 🔍FUNCTIONS
    • List of commands
    • Mochi Profile
      • View profile
      • User's engagement
      • User's XP
      • Tag Me
    • Mochi Pay
      • Deposit & Withdraw
      • Tip Bot
      • Airdrop Tokens
      • Pay Link
      • Pay Me
      • Check Balance
      • Monikers
      • Supported Tokens
      • Transaction history
      • Wallet tools
      • Default currency
    • Mochi APIs
      • Crypto management
        • Crypto Ticker
        • Crypto conversion
        • Gas fee estimation
        • Token Watchlist
        • Price alert
        • Crypto heatmap
        • Token swap
        • Top gainers & losers
        • Trending tokens
      • NFT
        • Rarity Checker
        • Supported Collections
        • Add Collection
        • Set Default Collection
        • NFT Ticker & Volume
        • Sales Tracker
        • Twitter sales bot
    • Mochi DAO
      • Holder Verification
      • DAO
      • Mochi Vault
      • Community proposal
      • Default Roles
      • Level Roles
      • Reaction Roles
      • NFT Roles
      • Token Roles
      • Server Administration
        • Log Channels
        • Bot manager
      • User Engagement
        • Gm/Gn
        • Starboard
    • Mochi Ads
      • Advertise on Mochi
    • Mochi Quests
      • Daily Quest
    • Feedback For Mochi
      • Vote For Mochi
Powered by GitBook
On this page
  • API using for ticker
  • API using for watchlist
  • APIs for NFT checking
  1. FUNCTIONS

Mochi APIs

API using for ticker

Query for a token or a list of tokens (in case of duplicated symbols) https://api.mochi.pod.town/api/v1/defi/coins?query=sol The response will look something like this

{
  "data": [
    {
      "id": "solana",
      "symbol": "sol",
      "name": "Solana"
    },
    {
      "id": "sol-wormhole",
      "symbol": "sol",
      "name": "SOL (Wormhole)"
    },
    {
      "id": "wrapped-solana",
      "symbol": "sol",
      "name": "Wrapped Solana"
    }
  ]
}

data will be an empty list if the token is not found After that, you can grab the token's id and call the next api https://api.mochi.pod.town/api/v1/defi/coins/{id}, response will be something like this

{
  "data": {
    "id": "ethereum",
    "name": "Ethereum",
    "symbol": "eth",
    "market_cap_rank": 2,
    "asset_platform_id": "",
    "image": {
      "thumb": "https://assets.coingecko.com/coins/images/279/thumb/ethereum.png?1595348880",
      "small": "https://assets.coingecko.com/coins/images/279/small/ethereum.png?1595348880",
      "large": "https://assets.coingecko.com/coins/images/279/large/ethereum.png?1595348880"
    },
    "market_data": {
      "current_price": {
        "usd": 1983.03,
        "vnd": 46626651,
        ...
      },
      "market_cap": {
        "usd": 236866834921,
        "vnd": 5569405946919549,
        ...
      },
      // these are quite self-explanatory
      "price_change_percentage_1h_in_currency": {
	      "usd": 4.7594,
	      "bnb": 3.59761,
        ...
      },
      "price_change_percentage_24h_in_currency": {
	      "usd": 4.7594,
	      "bnb": 3.59761,
        ...
      },
      "price_change_percentage_7d_in_currency": {
	      "usd": 4.7594,
	      "bnb": 3.59761,
        ...
      }
    },
    // ignore this for now
    "tickers": [],
    // the token's description
    "description": {
      "en": "Ethereum is a global, open-source platform..."
    }
  }
}

Additionally, you can also query chart data for a pair of tokens https://api.mochi.pod.town/api/v1/defi/coins/compare?base=ethereum&target=tether&interval=30 base and target is the token's id as mentioned above interval is measured in days all query params are required

{
  "data": {
    "base_coin": {
      "id": "ethereum",
      "name": "Ethereum",
      "symbol": "eth",
      "market_cap_rank": 2,
      "asset_platform_id": "",
      "image": {
        "thumb": "https://assets.coingecko.com/coins/images/279/thumb/ethereum.png?1595348880",
        "small": "https://assets.coingecko.com/coins/images/279/small/ethereum.png?1595348880",
        "large": "https://assets.coingecko.com/coins/images/279/large/ethereum.png?1595348880"
      },
      "market_data": {},
        "market_cap": {},
        "price_change_percentage_1h_in_currency": {},
        "price_change_percentage_24h_in_currency": {},
        "price_change_percentage_7d_in_currency": {}
      },
      "tickers": [],
      "description": {
        "en": "..."
      }
    },
    "target_coin": {
      "id": "tether",
      "name": "Tether",
      "symbol": "usdt",
      "market_cap_rank": 3,
      "asset_platform_id": "ethereum",
      "image": {
        "thumb": "https://assets.coingecko.com/coins/images/325/thumb/Tether.png?1668148663",
        "small": "https://assets.coingecko.com/coins/images/325/small/Tether.png?1668148663",
        "large": "https://assets.coingecko.com/coins/images/325/large/Tether.png?1668148663"
      },
      "market_data": {},
        "market_cap": {},
        "price_change_percentage_1h_in_currency": {},
        "price_change_percentage_24h_in_currency": {},
        "price_change_percentage_7d_in_currency": {},
      "tickers": [],
      "description": {
        "en": "..."
      }
    },
    // ticks for y axis
    "ratios": [
      1747.3762376237623,
      1748.950495049505,
      1729.7227722772277,
      1739.4554455445543,
      1727.2673267326732,
			....
    ],
    // ticks for x axis
    "times": [
			"03-20",
      "03-21",
      "03-21",
      "03-21",
      "03-21",
      "03-21",
      "03-21",
      "03-22",
      "03-22",
      "03-22",
      "03-22",
      "03-22",
      "03-22",
			...
    ],
    "base_coin_suggestions": null,
    "target_coin_suggestions": null,
    "from": "March 20, 2023",
    "to": "April 19, 2023"
  }
}

API using for watchlist

GET view a user's watchlist data https://api.mochi.pod.town/api/v1/defi/watchlist?user_id={id} user_id is the discord's user id POST add a token to user's watchlist https://api.mochi.pod.town/api/v1/defi/watchlist

{
	user_id: '...',
	symbol: 'ETH'
}

DELETE remove a token from user's watchlist https://api.mochi.pod.town/api/v1/defi/watchlist?symbol=ETH&user_id=...

APIs for NFT checking

https://api.mochi.pod.town/api/v1/nfts/{symbol_or_address}/{token_id}

query string:

  • query_address: boolean - use when you want to query using the collection's address instead of the symbol

the above endpoint will return either

  • empty - no record found

  • response with data (in case there is only one matching symbol of a collection in database)

  • empty but suggestions field are populated (in case there are multiple collections that match the symbol)

response will have the following shape (some properties are omitted for the sake of brevity) https://api.mochi.pod.town/api/v1/nfts/NEKO/1

{
  "data": {
    "image_content_type": "",
    "rarity_rank": 0,
    "rarity_tier": "",
    "attributes": null,
    "rarity": null,
    "metadata_id": "",
    "owner": {
      "owner_address": "",
      "collection_address": "",
      "token_id": ""
    },
    "marketplace": null
  },
  // where there are mutliple collections with the same symbol (NEKO in this case)
  "suggestions": [
    {
      "name": "Cyber Neko",
      "symbol": "NEKO",
      "address": "0x7aCeE5D0acC520faB33b3Ea25D4FEEF1FfebDE73",
      "chain": "ftm",
      "chain_id": 0
    },
    {
      "name": "Sipher NEKO",
      "symbol": "NEKO",
      "address": "0x09E0dF4aE51111CA27d6B85708CFB3f1F7cAE982",
      "chain": "eth",
      "chain_id": 0
    },
   ...
  ]
}

When you receive this type of response, generally we recommend that you show the selection to user and let them choose, after which you will obtain the collection's address. Let's say they chose the first one (0x7aCeE5D0acC520faB33b3Ea25D4FEEF1FfebDE73)

You can then proceed to call the above api again, this time substituting the symbol with address and add the query_address=true to query string, response will look like following:

{
  "data": {
    "token_id": "1",
    "collection_address": "0x7aCeE5D0acC520faB33b3Ea25D4FEEF1FfebDE73",
    "name": "Cyber Neko 1",
    "description": "Cyber Neko NFT",
    "image": "https://storage.googleapis.com/cyber-neko/genesis-collection/full/1",
    "image_cdn": "https://storage.googleapis.com/cyber-neko/genesis-collection/thumb/1",
    "image_content_type": "",
    "rarity_rank": 0,
    "rarity_tier": "",
    "attributes": [
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Mask",
        "value": "None",
        "count": 6556,
        "rarity": "Common",
        "frequency": "99.36%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Earring",
        "value": "None",
        "count": 4965,
        "rarity": "Common",
        "frequency": "82.36%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Eyewear",
        "value": "None",
        "count": 4629,
        "rarity": "Common",
        "frequency": "81.13%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Fur",
        "value": "None",
        "count": 4041,
        "rarity": "Common",
        "frequency": "71.12%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Necklace",
        "value": "None",
        "count": 4024,
        "rarity": "Common",
        "frequency": "72.29%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Body",
        "value": "White",
        "count": 894,
        "rarity": "Common",
        "frequency": "15.49%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Eyes",
        "value": "Tired Eyes",
        "count": 390,
        "rarity": "Uncommon",
        "frequency": "5.61%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Mouth",
        "value": "Bearded",
        "count": 118,
        "rarity": "Mythic",
        "frequency": "0.59%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Background",
        "value": "Paw Pattern",
        "count": 92,
        "rarity": "Uncommon",
        "frequency": "1.07%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Hat",
        "value": "Playboy",
        "count": 68,
        "rarity": "Rare",
        "frequency": "0.48%"
      },
      {
        "collection_address": "",
        "token_id": "",
        "trait_type": "Clothe",
        "value": "Japanese Uniform",
        "count": 67,
        "rarity": "Rare",
        "frequency": "0.47%"
      }
    ],
    "rarity": {
      "rank": 914,
      "score": "3.658723",
      "total": 6666,
      "rarity": "Epic"
    },
    "metadata_id": "",
    "owner": {
      "owner_address": "0xD28Cf82b9B8ee25E3C82923aDF6aA6CC2f220932",
      "collection_address": "0x7aCeE5D0acC520faB33b3Ea25D4FEEF1FfebDE73",
      "token_id": "1"
    },
    "marketplace": []
  },
  "suggestions": null,
}
PreviousDefault currencyNextCrypto management

Last updated 1 year ago

🔍