All
ফিল্টার করুন:
আমি কিভাবে আমার অ্যাকাউন্টে নগদ জমা দেব?
আমার অ্যাকাউন্ট যাচাই করতে সাহায্য দরকার
কেন আমি আমার অ্যাকাউন্টে প্রবেশ করতে পারছি না?
কোনও ক্রিপ্টো উত্তোলন ফি আছে কি?
আমার অ্যাকাউন্টে সাইন ইন করতে সাহায্য দরকার
REST API ফান্ডিং এন্ডপয়েন্ট ব্যবহার করে, ক্লায়েন্টরা তাদের Kraken অ্যাকাউন্টে তহবিল জমা/উত্তোলন করতে এবং একটি জমা/উত্তোলন লেনদেনের রিয়েল-টাইম স্ট্যাটাস অনুরোধ করতে সক্ষম।
প্রাথমিক অনুরোধ এবং লেনদেন সম্পন্ন হওয়ার মধ্যে জমা/উত্তোলনগুলি বিভিন্ন ধাপের মধ্য দিয়ে যায়, তাই ফান্ডিং এন্ডপয়েন্টগুলি কখন কল করা হচ্ছে তার উপর নির্ভর করে একটি ভিন্ন স্ট্যাটাস মান ফেরত দেবে।
উল্লেখ্য যে স্ট্যাটাস মানগুলি মূলত ইন্টারনেট ফিনান্সিয়াল এক্সচেঞ্জ প্রোটোকল (IFEX) ডকুমেন্টের 16/17 পৃষ্ঠা থেকে এসেছে, তবে ক্রিপ্টো লেনদেনের জন্য আরও উপযুক্ত করার জন্য মানগুলি সামান্য পরিবর্তন করা হয়েছে (উদাহরণস্বরূপ, সমস্ত সম্ভাব্য স্ট্যাটাস মান ব্যবহার করা হয় না)।
ডিপোজিট লেনদেনের জন্য সম্ভাব্য স্ট্যাটাস মানগুলি নিম্নরূপ:
Settled = ডিপোজিট গৃহীত হয়েছে কিন্তু ব্লকচেইনে এখনও অতিরিক্ত নিশ্চিতকরণের প্রয়োজন।
Success = ডিপোজিট ব্লকচেইনে প্রয়োজনীয় সংখ্যক নিশ্চিতকরণ অর্জন করেছে।
Failure = ডিপোজিট ব্যর্থ হয়েছে (বিভিন্ন কারণে)।
DepositStatus এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়াগুলিতে উপরের স্ট্যাটাস মানগুলি কীভাবে প্রদর্শিত হবে তার কিছু উদাহরণ নিচে দেওয়া হলো:
Settled স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Settled"}]}
Success স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906tdde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Success"}]}
উত্তোলন লেনদেনের জন্য সম্ভাব্য স্ট্যাটাস মানগুলি নিম্নরূপ:
Initial = উত্তোলনের অনুরোধ গৃহীত হয়েছে এবং বৈধতার জন্য পরীক্ষা করা হচ্ছে (অ্যাকাউন্টে কোনো ফান্ডিং সীমাবদ্ধতা আছে কিনা, ইত্যাদি)।
Pending = উত্তোলন আমাদের ফান্ডিং গেটওয়ে দ্বারা প্রক্রিয়া করার জন্য অপেক্ষা করছে।
Settled = উত্তোলন ব্লকচেইনে পাঠানো হয়েছে (এই সময়ে ব্লকচেইন লেনদেন আইডি উপলব্ধ হবে)।
Success = উত্তোলন লেনদেনের ব্লকচেইনে কমপক্ষে 1টি নিশ্চিতকরণ রয়েছে।
On hold = উত্তোলন স্থগিত করা হয়েছে এবং আমাদের ফান্ডিং টিম দ্বারা ম্যানুয়ালি পরীক্ষা করা হবে।
Failure = উত্তোলন ব্যর্থ হয়েছে (বিভিন্ন কারণে)।
WithdrawStatus এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়াগুলিতে উপরের স্ট্যাটাস মানগুলি কীভাবে প্রদর্শিত হবে তার কিছু উদাহরণ নিচে দেওয়া হলো:
Initial স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Initial"}]}
Pending স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Pending"}]}
Settled স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Settled"}]}
Success স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Success"}]}
Failure স্ট্যাটাস:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Failure","status-prop":"canceled"}]}
ডিপোজিট/উত্তোলন সম্পর্কিত অতিরিক্ত তথ্য আমাদের ক্যাশ ফান্ডিং এবং ক্রিপ্টো ফান্ডিং সহায়তা পৃষ্ঠাগুলিতে উপলব্ধ।
REST API OHLC এন্ডপয়েন্ট শুধুমাত্র সীমিত পরিমাণে ঐতিহাসিক ডেটা সরবরাহ করে, বিশেষত অনুরোধ করা ইন্টারভালের 720 ডেটা পয়েন্ট। উদাহরণস্বরূপ, 1 মিনিটের ইন্টারভালে OHLC ডেটার অনুরোধ করলে সাম্প্রতিক 720 মিনিটের (12 ঘন্টা) ডেটা ফেরত দেবে।
অতিরিক্ত OHLC বা টিক ডেটার প্রয়োজন এমন অ্যাপ্লিকেশনগুলির জন্য, REST API Trades এন্ডপয়েন্ট এর মাধ্যমে আমাদের বাজারের সম্পূর্ণ ট্রেডিং ইতিহাস (ঐতিহাসিক সময় এবং বিক্রয়) পুনরুদ্ধার করা সম্ভব। যেকোনো সময়সীমা এবং যেকোনো ইন্টারভালের জন্য OHLC তখন ঐতিহাসিক সময় এবং বিক্রয় ডেটা থেকে তৈরি করা যেতে পারে।
Trades এন্ডপয়েন্ট since নামক একটি ঐচ্ছিক প্যারামিটার নেয়, যা ডেটার শুরুর তারিখ/সময় নির্দিষ্ট করে। since মানটি ন্যানোসেকেন্ড রেজোলিউশনে একটি UNIX timestamp (9টি অতিরিক্ত সংখ্যা সহ সেকেন্ডে একটি স্ট্যান্ডার্ড UNIX timestamp)।
উদাহরণস্বরূপ, Trades এন্ডপয়েন্টে একটি কল যেমন https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 2019 সালের 1লা জুন 00:00:00 UTC থেকে XBT/USD এর জন্য ঐতিহাসিক সময় এবং বিক্রয় ফেরত দেবে:
{"error":[],"result":{"XXBTZUSD":[["8552.90000","0.03190270",1559347203.7998,"s","m",""],["8552.90000","0.03155529",1559347203.8086,"s","m",""],["8552.90000","0.00510797",1559347203.9664,"s","m",""],["8552.90000","0.09047336",1559347203.9789,"s","m",""],["8552.90000","0.00328738",1559347203.9847,"s","m",""],["8552.90000","0.00492152",1559347203.9897,"s","m",""],["8552.90000","0.00201848",1559347203.9937,"s","m",""],["8552.90000","0.11422068",1559347203.9993,"s","m",""],["8552.90000","0.00425858",1559347204.071,"s","m",""],["8552.90000","0.00427679",1559347204.0762,"s","m",""],["8552.90000","0.06381401",1559347204.1662,"s","m",""]...["8579.50000","0.05379597",1559350785.248,"s","l",""],["8579.50000","0.94620403",1559350785.2936,"s","l",""],["8578.10000","0.45529068",1559350785.297,"s","l",""]],"last":"1559350785297011117"}}
Trades এন্ডপয়েন্টে পরবর্তী কলগুলিতে since প্যারামিটারের মান পূর্ববর্তী কলের ফলাফল থেকে last প্যারামিটারের মান দিয়ে প্রতিস্থাপন করা উচিত, যেমন https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117।
0 (শূন্য) এর বিশেষ since মান ব্যবহার করলে বাজারের শুরু থেকে (প্রথম ট্রেড থেকে শুরু করে) ঐতিহাসিক সময় এবং বিক্রয় ফেরত দেবে।
একটি ইউজার রেফারেন্স হল ক্লায়েন্ট দ্বারা প্রদত্ত একটি অর্ডার আইডি যা কিছু অর্ডার ম্যানেজমেন্ট কাজের জন্য (বিশেষত অর্ডার বাতিল করার জন্য) প্রকৃত (API দ্বারা প্রদত্ত) অর্ডার আইডির পরিবর্তে ব্যবহার করা যেতে পারে।
ইউজার রেফারেন্সগুলি যতটা সম্ভব নমনীয়ভাবে প্রয়োগ করা হয়েছে এবং তাই বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে, যার মধ্যে রয়েছে:
একটি অনন্য আইডি হিসাবে (যেখানে প্রতিটি অর্ডারের একটি ভিন্ন ইউজার রেফারেন্স থাকে),
সম্পর্কিত অর্ডারগুলিকে একসাথে গোষ্ঠীভুক্ত করতে (যেমন বিভিন্ন লিভারেজ স্তরের সাথে অর্ডারগুলিকে গোষ্ঠীভুক্ত করা),
অথবা একটি ব্যাকআপ আইডি হিসাবে যদি প্রকৃত অর্ডার আইডি জানা না থাকে।
একটি ইউজার রেফারেন্স অবশ্যই 1 থেকে 2,147,483,647 এর মধ্যে একটি সংখ্যাসূচক মান হতে হবে (মূলত যেকোনো ধনাত্মক 32 বিট সংখ্যা), এবং তাই এটি একটি সাধারণ কাউন্টার হিসাবে, একটি র্যান্ডম স্বাক্ষরিত 32 বিট মান হিসাবে, অথবা এমনকি সেকেন্ডে একটি টাইমস্ট্যাম্প হিসাবেও প্রয়োগ করা যেতে পারে (যদিও এটি 2038 সালের 19শে জানুয়ারী 3:14:07 UTC এর পরে ব্যর্থ হবে)।
AddOrder এন্ডপয়েন্ট কল করে এবং ইউজার রেফারেন্সকে মান হিসাবে userref প্যারামিটার অন্তর্ভুক্ত করে একটি সংযুক্ত ইউজার রেফারেন্স সহ অর্ডার স্থাপন করা যেতে পারে:
$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.1 volume=50 userref=27649653
{"error":[],"result":{"descr":{"order":"buy 50.00000000 XDGUSD @ limit 0.1000000"},"txid":["OQJSXE-F5FOM-IXHVL4"]}}
যে অর্ডারগুলিতে ইতিমধ্যেই একটি ইউজার রেফারেন্স সংযুক্ত আছে সেগুলি Open/Closed/QueryOrders এন্ডপয়েন্ট কল করে এবং বিদ্যমান ইউজার রেফারেন্সকে মান হিসাবে userref প্যারামিটার অন্তর্ভুক্ত করে দেখা যেতে পারে (এই ক্ষেত্রে ইউজার রেফারেন্স একটি ফিল্টার হিসাবে কাজ করে, শুধুমাত্র সংশ্লিষ্ট অর্ডারগুলি প্রদর্শন করে):
$ ./krakenapi OpenOrders userref=27649653
{"error":[],"result":{"open":{"OQJSXE-F5FOM-IXHVL4":{"refid":null,"userref":27649653,"status":"open","opentm":1629618802.9812,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"buy","ordertype":"limit","price":"0.1000000","price2":"0","leverage":"none","order":"buy 50.00000000 XDGUSD @ limit 0.1000000","close":""},"vol":"50.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}}
$ ./krakenapi ClosedOrders userref=38695724
{"error":[],"result":{"closed":{"O7YEFN-3V4RK-FBNSNM":{"refid":null,"userref":38695724,"status":"canceled","reason":"User requested","opentm":1629619539.3593,"closetm":1629619542.2246,"starttm":0,"expiretm":0,"descr":{"pair":"XBTUSD","type":"buy","ordertype":"limit","price":"25000.0","price2":"0","leverage":"none","order":"buy 0.00010000 XBTUSD @ limit 25000.0","close":""},"vol":"0.00010000","vol_exec":"0.00000000","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}
যে অর্ডারগুলিতে ইতিমধ্যেই একটি ইউজার রেফারেন্স সংযুক্ত আছে সেগুলি CancelOrder এন্ডপয়েন্ট কল করে এবং txid মান হিসাবে ইউজার রেফারেন্স ব্যবহার করে (অর্ডার আইডির মানের পরিবর্তে) বাতিল করা যেতে পারে:
$ ./krakenapi CancelOrder txid=16764529
{"error":[],"result":{"count":1}}
উল্লেখ্য যে একই ইউজার রেফারেন্স সহ সমস্ত ওপেন অর্ডার বাতিল করা হবে, তাই একাধিক অর্ডার একসাথে বাতিল করার জন্য একটি একক CancelOrder কল করা সম্ভব (নিম্নলিখিত প্রতিক্রিয়ায় count মান 3 দ্বারা নির্দেশিত):
$ ./krakenapi CancelOrder txid=48695624
{"error":[],"result":{"count":3}}
এই সমস্যাটি Cloudflare এর সাথে সম্পর্কিত হতে পারে:
https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-
দ্রষ্টব্য: Kraken-এ "Browser Integrity Check" সক্ষম করা আছে।
আপনার অনুরোধে সন্দেহজনক হেডার থাকলে এটি ঘটতে পারে। উদাহরণস্বরূপ, আপনার অনুরোধে একটি ইউজার এজেন্ট অনুপস্থিত থাকতে পারে, অথবা একটি নন-স্ট্যান্ডার্ড ইউজার এজেন্ট ব্যবহার করতে পারে; তাই অনুগ্রহ করে আপনার অনুরোধের হেডারগুলি পরীক্ষা করুন।
যদি আপনি আমাদের সিস্টেম দ্বারা অনুমোদিত কোনো স্ট্যান্ডার্ড অনুরোধ তৈরি করতে না পারেন, তাহলে আপনার IP ঠিকানা এবং সমস্ত হেডার সহ আপনি যে অনুরোধগুলি করার চেষ্টা করছেন তার একটি সম্পূর্ণ কপি আমাদের পাঠান। এই তথ্য আমাদের আরও তদন্ত করতে সাহায্য করবে।
আমাদের Futures REST এবং WebSocket APIs (futures.kraken.com) এর জন্য আমরা API URL demo-futures.kraken.com ব্যবহার করে একটি সম্পূর্ণ পরীক্ষা পরিবেশ অফার করি।
আমাদের স্পট REST/WebSocket API এবং FIX API এর জন্য, আমরা বর্তমানে যোগ্য ক্লায়েন্টদের জন্য একটি পরীক্ষার পরিবেশ অফার করি। এই পরিবেশে অ্যাক্সেস পেতে একটি অনবোর্ডিং প্রক্রিয়ার প্রয়োজন যা সরাসরি API টিমের সাথে যোগাযোগ করে শুরু করা যেতে পারে।
REST API AddOrder অথবা WebSocket API addOrder এন্ডপয়েন্টের মাধ্যমে একটি অর্ডার স্থাপন করার সময়, ভ্যালিডেট ইনপুট প্যারামিটারটি অর্ডার সিমুলেট করতে ব্যবহার করা যেতে পারে।
ভ্যালিডেট প্যারামিটারটি true (validate=1, validate=true, validate=anything, ইত্যাদি) সেট করে AddOrder/addOrder কল করলে অর্ডারের বিবরণ ত্রুটির জন্য পরীক্ষা করা হবে, কিন্তু API রেসপন্সে কখনও অর্ডার আইডি অন্তর্ভুক্ত থাকবে না (যা ভ্যালিডেট প্যারামিটার ছাড়া একটি সফল অর্ডারের জন্য সর্বদা ফেরত দেওয়া হবে)।
ভ্যালিডেট প্যারামিটার সহ AddOrder কলের উদাহরণ (অর্ডার আইডি অনুপস্থিতি লক্ষ্য করুন):
Bash
$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}ছোট বাস্তব অর্ডার এবং/অথবা চরম মূল্যের অর্ডার
ভ্যালিডেট প্যারামিটার ব্যবহার করে একটি ব্যাপক API পরীক্ষার জন্য, আমরা খুব ছোট মার্কেট অর্ডার ( সর্বনিম্ন অর্ডার আকারের জন্য অর্ডার) স্থাপন করার পরামর্শ দিই, অথবা লিমিট অর্ডার যা বর্তমান বাজার মূল্য থেকে অনেক দূরে মূল্য নির্ধারণ করা হয়েছে (উদাহরণস্বরূপ, যখন বাজার মূল্য $200 তখন ETH/USD $800 এ বিক্রি করার জন্য একটি লিমিট অর্ডার স্থাপন করা)।
লাইভ অর্ডার ব্যবহার করে পরীক্ষা আপনার API কোডকে বাস্তব বিশ্বের পরিস্থিতিতে আমাদের API এর সাথে ইন্টারঅ্যাক্ট করতে দেয়, অতএব পরীক্ষার প্রতিটি দিক সঠিক হবে (আপনার অর্ডারগুলি কীভাবে অর্ডার বুককে প্রভাবিত করে, ইত্যাদি)।
নিরাপত্তার কারণে, আমরা সম্প্রতি TLS 1.0 এবং 1.1 এর জন্য সমর্থন বন্ধ করে দিয়েছি। যদি আপনি আমাদের API এর সাথে সংযোগ করার চেষ্টা করার সময় SSL/TLS সংযোগ ত্রুটি বার্তাগুলির সম্মুখীন হন, তবে এটি সম্ভবত এই অপ্রচলিত স্ট্যান্ডার্ডগুলির মধ্যে একটি ব্যবহারের কারণে। আপনাকে আপনার API ক্লায়েন্টকে TLS 1.2/1.3 ব্যবহার করতে বাধ্য করার জন্য পরিবর্তন করতে হবে অথবা আপনার .NET সংস্করণ 4.6 বা তার উপরে আপগ্রেড করতে হবে, যা TLS 1.2/1.3 কে স্ট্যান্ডার্ড হিসাবে ব্যবহার করে।
নিম্নলিখিত Google Sheet ব্যবহার করে ইনপুট ডেটার যেকোনো সমন্বয়ের জন্য REST API প্রমাণীকরণ স্বাক্ষর গণনা করা যেতে পারে:
API private (secret) key
API endpoint (Balance, TradeBalance, QueryOrders, ইত্যাদি)
Nonce value (আরও বিস্তারিত জানতে আমাদের ননস কী সাপোর্ট পেজ দেখুন)
Endpoint input parameters (asset=doge, উদাহরণস্বরূপ)
ক্যালকুলেটরটি প্রমাণীকরণ অ্যালগরিদম সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে ব্যবহার করা যেতে পারে, এর ফলে ডেভেলপমেন্ট চক্রের পরবর্তী পর্যায়ে সম্ভাব্য সমস্যা (বিশেষ করে অপ্রত্যাশিত অবৈধ কী ত্রুটি) এড়ানো যায়।
Chrome (বা অন্য কোনো সাম্প্রতিক ওয়েব ব্রাউজারে) REST API প্রমাণীকরণ ক্যালকুলেটরটি খুলুন
File -> Make a copy মেনুর মাধ্যমে ক্যালকুলেটরটির একটি কপি আপনার Google Drive এ তৈরি করুন (এই ধাপের জন্য আপনাকে আপনার Google অ্যাকাউন্টে সাইন ইন করতে হবে)
আপনার নিজস্ব API key এবং অনুরোধের বিবরণ দিয়ে API key, API endpoint, nonce value, এবং input data ফিল্ডগুলি সম্পাদনা করুন
গণনা করা API প্রমাণীকরণ স্বাক্ষরটি আপনার নিজস্ব API কোড দ্বারা গণনা করা মানের সাথে তুলনা করুন (দুটি মান হুবহু মিলতে হবে)
নিরাপত্তার কারণে, আমরা একটি অস্থায়ী API key সহ প্রমাণীকরণ ক্যালকুলেটর ব্যবহার করার পরামর্শ দিই, এবং আপনার প্রমাণীকরণ স্বাক্ষর বাস্তবায়ন সঠিক প্রমাণিত হলে আপনার অ্যাকাউন্ট থেকে API key টি মুছে ফেলুন।

আমাদের ক্লায়েন্ট লাইব্রেরি র্যাপার ব্যবহার করার প্রধান সুবিধা হল যে API স্বাক্ষর তৈরির জন্য আপনাকে সময়/শ্রম ব্যয় করতে হবে না, এটি আপনার জন্য ইতিমধ্যেই করা হয়েছে।
যদি আপনি শুধুমাত্র পাবলিক মেথডগুলিতে কল করার ইচ্ছা করেন, তবে আপনি ক্লায়েন্ট লাইব্রেরিগুলি থেকে অপ্ট আউট করতে পারেন কারণ কোনো প্রমাণীকরণের প্রয়োজন নেই।
উপলব্ধ র্যাপারগুলির তালিকা আপনি এখানে খুঁজে পেতে পারেন।