API CoinGecko VS API CoinMarketCap

CoinExVietNam

Vip Member
Bài viết
403
Điểm tương tác
22
Điểm
18

Giới thiệu​

Trong thị trường tiền điện tử, API đóng vai trò là công cụ quan trọng hỗ trợ kết nối giữa các ứng dụng và dịch vụ khác nhau. API CoinGecko và API CoinMarketCap là hai nhà cung cấp dữ liệu tiền điện tử chính. Không giống như các API được cung cấp bởi các sàn giao dịch tập trung chủ yếu vào giao dịch, CoinGecko và CoinMarketCap cung cấp dữ liệu và thông tin toàn diện và đa dạng. Chúng có thể được sử dụng để giao dịch định lượng, khai thác dữ liệu và so sánh. Trong bài viết này, chúng tôi sẽ sử dụng hai gã khổng lồ tích hợp dữ liệu này làm ví dụ, với Python là ngôn ngữ cơ bản, để giải thích giới thiệu và so sánh hai API này để hiểu rõ hơn về sự khác biệt, ưu điểm và nhược điểm.

API CoinGecko:​

Tài liệu API​

API CoinGecko cung cấp giá trực tiếp, dữ liệu lịch sử, khối lượng giao dịch và các cặp giao dịch, cũng như các loại dữ liệu khác. Nó được chia thành 5 loại, mỗi loại có các mức giá và chất lượng dịch vụ khác nhau về thời gian phản hồi, độ chính xác của dữ liệu, độ sâu của dữ liệu và khả năng tùy chỉnh được cá nhân hóa. Chi phí hàng tháng cho các gói tùy chỉnh dao động từ 100$ đến 800$. Tuy nhiên, do kinh phí hạn chế, bài viết này sẽ tập trung vào phiên bản công khai cơ bản.

Tài liệu ở trên dành cho API CoinGecko V3, bao gồm dữ liệu về giá và khối lượng, thông tin cơ bản, thông tin sàn giao dịch và một tính năng mới để theo dõi NFT.

Ngôn ngữ được hỗ trợ​

CoinGecko hỗ trợ nhiều ngôn ngữ lập trình bao gồm NodeJs, Go, .Net, Python, Java, Kotlin, Google Sheets, Cryptosheets, PHP và WordPress Plugin.
Phiên bản miễn phí không cần đăng ký trên CoinGecko và bạn có thể gọi trực tiếp đến thư viện do dự án cung cấp.

Bài tập thực hành​

Cài đặt Pip pycoingecko
Để cài đặt thư viện Python trong terminal, hãy sử dụng lệnh:
pip install pycoingecko

Sau khi cài đặt, bạn có thể sử dụng pip show pycoingecko để kiểm tra xem thư viện đã được cài đặt đúng chưa. Lệnh này sẽ hiển thị phần phụ thuộc cho thư viện, trong trường hợp này là "requests". Requests là một thành phần quan trọng của việc quét web bằng Python và bạn cũng có thể sử dụng các yêu cầu để thu thập thông tin từ CoinGecko bằng mã của riêng bạn. Tuy nhiên, API cung cấp một cách đơn giản và trực tiếp hơn.
1683218283463.png

Hoặc bạn có thể tự thêm thư viện vào môi trường ưa thích của mình bằng anaconda. Vì quá trình này nằm ngoài phạm vi của bài viết này, chúng tôi sẽ không đi sâu vào nó.

Bạn có thể truy cập API CoinGecko bằng cách nhập nó. Thông thường, chúng tôi sử dụng cg làm bí danh.
from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()

Để kiểm tra trạng thái của API, bạn có thể sử dụng chức năng ping:
1683218293989.png

Sau khi nhận được câu trả lời "To the moon!" từ CoinGecko xác nhận API đang hoạt động, chúng tôi có thể tiến hành truy xuất dữ liệu giá cơ bản. Lấy ETH làm ví dụ:

Để truy xuất giá, cần có hai biến cần thiết: tên mã thông báo và cặp giao dịch được hỗ trợ. Chúng có thể được lấy riêng bằng cách sử dụng
cg.get_coins_list()
1683218302824.png
và cg.get_supported_vs_currencies()
1683218308446.png


Sau đó chạy chương trình và bạn sẽ nhận được giá trị hiện tại của Ethereum bằng USD.
cg.get_price(ids='ethereum', vs_currencies='usd')

1683218317424.png
Bạn cũng có thể nhập nhiều ID để lấy giá cho một số mã thông báo.
1683218322692.png

Dữ liệu về thay đổi khối lượng: Ngoài giá cả, hàm get_price có thể truy xuất giá trị vốn hóa thị trường, khối lượng 24 giờ, thay đổi giá 24 giờ và dấu thời gian.

cg.get_price(ids='ethereum',vs_currencies='usd',include_market_cap='true',include_24hr_vol='true',include_24hr_change='true',include_last_updated_at='true')
1683218330861.png
Dữ liệu lịch sử: Ngoài dữ liệu trực tiếp, chức năng “History” có thể được sử dụng để truy xuất dữ liệu lịch sử:
cg.get_coin_history_by_id(id='ethereum',date='01-01-2023', localization='false')
1683218337128.png
1683218341877.png
Ngoài dữ liệu về giá, bạn cũng có thể thu được các dữ liệu khác như dữ liệu cộng đồng, dữ liệu nhà phát triển và dữ liệu duyệt web công khai.
Nếu bạn cần dữ liệu lịch sử 24 giờ, bạn có thể sử dụng:
cg.get_coin_market_chart_by_id(id='etherum',vs_currency='usd',days='3')
1683218348214.png

Trên đây là cách sử dụng API CoinGecko cơ bản và có nhiều cách sử dụng API nâng cao hơn có thể được kết hợp với các phần mềm hoặc thư viện khác nhau cho các mục đích khác nhau. Nó là một công cụ có giá trị cho công việc và học tập.

API CoinMarketCap​

Tài liệu API
So với CoinGecko, CMC đã bị chỉ trích vì thiên vị đối với Binance. Tuy nhiên, CMC tính phí thấp hơn CoinGecko. Tuy nhiên, rõ ràng là nhiều tính năng chỉ có sẵn trong các dịch vụ trả phí. Phiên bản mã nguồn mở miễn phí của CMC API cung cấp dữ liệu hạn chế và cả độ chính xác cũng như khối lượng dữ liệu đều không thể đáp ứng nhu cầu học thuật hoặc thương mại.

Ngôn ngữ được hỗ trợ​

CMC hỗ trợ các ngôn ngữ lập trình như NodeJS, PHP, Python, Ruby, Objective-C, Java (Android), C# (.NET) và cURL.

Bài tập thực hành​

Đăng ký: Để sử dụng CMC API PRO, bạn phải có API Key bằng cách đăng ký và đăng nhập vào trang web của CMC. Sau đó nhấp để sao chép API Key.
https://pro.coinmarketcap.com/account

Có thể truy cập API CMC theo hai cách: thông qua yêu cầu hoặc thư viện chính thức.

Để cài đặt thư viện, hãy sử dụng pip install python-coinmarketcap.

Ở đây, chúng tôi sẽ trình bày quy trình trong chế độ sandbox. Chỉ cần xác định cmc=CoinMarketCapAPI(), và hệ thống sẽ mặc định ở chế độ sandbox hoặc nhập API Key để vào chế độ Pro.

Để truy xuất thông tin nội dung, trước tiên hãy nhập thư viện CMC và sử dụng cryptocurrency_info() từ API. Ở đây, chúng tôi sẽ sử dụng Solana làm ví dụ:

Các giá trị được trả về có thể ở dạng từ điển, số nguyên, chuỗi hoặc boolean, tương ứng với các chức năng khác nhau. Thiết kế này là một lợi ích lớn cho các nhà phát triển.

Để truy xuất thông tin mã thông báo: Chúng tôi cũng có thể sử dụng _listings_latest() để truy xuất thông tin mã thông báo mới nhất.

Phản hồi sẽ ở dạng từ điển, bao gồm ID, tên, ký hiệu, thứ hạng CMC, nguồn cung lưu thông, tổng nguồn cung, ngày bổ sung và cập nhật lần cuối. Bạn có thể chỉ định một ký hiệu hoặc sử dụng sên để truy vấn thông tin thời gian thực cho một mã thông báo cụ thể.

Để có được thông tin về khối lượng và giá cả, hãy sử dụng cryptocurrency_ohlcv_latest() từ API. ID hoặc ký hiệu phải được chỉ định. Bạn có thể sử dụng convert_id để chỉ định cặp giao dịch. Mặc định là USD.

Các tính năng khác: Thật thú vị, CMC cũng cung cấp chức năng truy vấn airdrop. Ở đây, chúng tôi sẽ sử dụng SOL làm ví dụ. Xin lưu ý rằng biến ID phải được chỉ định. API sẽ phản hồi với dữ liệu như ngày bắt đầu, tổng giải thưởng và số người chiến thắng:

API CMC cung cấp một loạt các chức năng, cho phép người dùng truy xuất sàn giao dịch, mã thông báo, khối lượng và giá cả, on-chain và thông tin tùy chỉnh. Để biết thêm thông tin, vui lòng tham khảo tài liệu về Pypi.

https://pypi.org/project/python-coinmarketcap/

Dưới đây là một số tham số để so sánh hai API, với số điểm tối đa là 5 điểm:

Rõ ràng là CMC tập trung nhiều hơn vào việc cung cấp trải nghiệm tốt hơn cho nhà phát triển, trong khi lợi thế của CoinGecko nằm ở sự đa dạng của dữ liệu và kế hoạch tương lai. Cả hai đều có thế mạnh riêng. Ngoài hai sản phẩm hàng đầu này, người dùng còn có các lựa chọn như ví blockchain và Coinsfera. Tuy nhiên, CMC và CoinGecko đã chiếm thị phần lớn nhất trên thị trường và có lợi thế của người đi đầu, khiến chúng trở thành những dự án được công nhận nhất. Rất khó để những người mới vượt qua họ trong thời gian ngắn. Chúng tôi hy vọng hai dự án sẽ mang lại các API ổn định hơn, hiệu quả hơn và chất lượng cao hơn cho thị trường dữ liệu khi chúng phát triển.
 
Bên trên