টেকনিক্যাল হোয়াইটপেপার v2.3
BlazePhoenix-Dex একটি অন-চেইন লিকুইডিটি অ্যাগ্রিগেটর, যা একটিমাত্র দাবির উপর গড়া: একটি দর (quote) এবং তার নির্বাহ একই গণনা। পথটি সেই লেনদেনের ভেতরেই নিষ্পন্ন হয় যে লেনদেন তাকে চালায়, প্রকাশ্য পুল-অবস্থা থেকে, এমন একটি অবস্থাহীন লাইব্রেরির মাধ্যমে যা যে কোনো পাঠক নিজেই আবার চালাতে পারেন; আর নিষ্পত্তির সময় যে সংখ্যাটি বাঁধন হয়ে দাঁড়ায়, সেটি নির্বাহরত ফ্রেমেই একই ডিসপ্যাচার দিয়ে আবার নিষ্পন্ন করা হয়। কোনো রাউটিং সেবা নেই, কোনো দামের ওরাকল নেই, কোনো কিপার নেই, কোনো আপগ্রেড পথ নেই। এই পেপার পাঁচটি চুক্তি — Core, Hub, Solver, Router, Quoter — এবং মেটা-সমীকরণের (Meta-Equation) কারকগুলো নির্দিষ্ট করে: অষ্টমুখী ডিসপ্যাচার Ω (Eightfold Dispatcher Ω), নিয়তিনির্ধারিত নিষ্পত্তি 𝒟 (Deterministic Derivation 𝒟), লৌহ-নিয়ম মেঝে Φ (Iron-Law floor Φ), সজীবতা ক্ষেত্র Ψ (Vitality Field Ψ) এবং প্রতারণা-রোধী প্রক্ষেপক Ξ (anti-scam projector Ξ)। এদের পেছনে বসে আছে একটিই শৃঙ্খলা, পরিমাপ-ভিত্তিক নকশা (Metrological Design): যে স্থানাঙ্ক মাপা যায় তার প্রতিটি মাপো, আর বাকিটাকে একঘাতী করো, যাতে মিথ্যা ইনপুট কেবল তার সরবরাহকারীকেই ক্ষতি করে। প্রতিটি নিশ্চয়তা তার প্রয়োগস্থল ও তার সীমাসহ বলা। যাচাইয়ের যন্ত্রটি তার হরসহ ছাপা: রিলিজ প্রোফাইলে 1,320টির মধ্যে 1,319টি পরীক্ষা সবুজ, বাছাই করা 203টির মধ্যে 203টি মিউট্যান্ট নিহত, 43টি অবস্থাযুক্ত অপরিবর্তনীয়ের দিকে তাক করা 15টির মধ্যে 14টি মিউট্যান্ট ধরা পড়েছে, শক্তি 2 (63 সারি, 258 জোড়া) এবং 3 (168 সারি, 1,636 ত্রয়ী)-এর কভারিং অ্যারে, 14 + 5টি রূপান্তরসম্পর্ক, পরস্পর একমত তিনটি অপ্টিমাইজার বিল্ড, এবং একটি দর কীভাবে পুরনো হয় তা নিয়ে 240 নমুনার একটি সমীক্ষা। এর কোনোটিই কী প্রতিষ্ঠা করে না, তা-ও সমান যত্নে বলা। যে কোডের বর্ণনা এখানে আছে তা V2 এবং তা মোতায়েন করা হয়নি; মোতায়েন করা প্রজন্ম হলো V1, কোডহ্যাশ দিয়ে গাঁথা, যাতে দুটি কখনো গুলিয়ে না যায়।
অবস্থা: এই পেপার কী বর্ণনা করে, আর মোতায়েন আছে কী
এই পেপার যে সংস্করণ 2 ট্রি বর্ণনা করে তা রিপোজিটরিতে আছে এবং মোতায়েন করা হয়নি; মোতায়েন করা প্রজন্ম হলো সংস্করণ 1, প্রতিটি নেটওয়ার্কে কোডহ্যাশ দিয়ে গাঁথা, যাতে দুটি কখনো গুলিয়ে না যায়। পেপারের প্রতিটি সংখ্যা main 8949a9d-এ মাপা এবং তার হরের পাশে ছাপা; ইংরেজিতে সম্পূর্ণ পাঠ: https://blazephoenix.xyz/whitepaper.md
§1 সমস্যা: দর হলো এমন এক প্রতিশ্রুতি যা অন্য কেউ কষে রেখেছে
কল্পনা করুন, আপনি এমন এক শহরে গাড়ি বিক্রি করছেন যেখানে কুড়িজন ডিলার আছে। একজন ভালো দালাল কুড়িজনের কাছেই যান, সবচেয়ে ভালো দামটি খুঁজে বের করেন, এবং হয়তো বিক্রিটাকে তাঁদের দুজনের মধ্যে ভাগ করে দেন। বেশির ভাগ অন-চেইন “দালাল” দাম দেখে নেয় নিজেদেরই ডেটাবেসে — যা সম্ভবত বাসি — আর আপনাকে একটি ফল দেখিয়ে দেয়। তাঁরা যে কুড়িজনকেই দেখেছেন, কিংবা আপনাকে সবচেয়ে ভালোটাই দেখিয়েছেন, তা আপনি যাচাই করতে পারবেন না। আপনি কেবল এটুকু যাচাই করতে পারেন যে এ পর্যন্ত তাঁরা সৎ থেকেছেন।
§2 উত্তর এবং শৃঙ্খলা
BlazePhoenix-Dex-এর একটি প্রবেশবিন্দু আছে যা ছয়টি মান নেয় — দুটি টোকেন, পরিমাণ, আপনার সর্বনিম্ন, একজন প্রাপক, একটি সময়সীমা — এবং যে লেনদেন তাকে চালায় তারই ভেতরে, প্রকাশ্য অবস্থা হিসেবে থাকা পুল-সঞ্চয় থেকে পথটি বের করে: কোন কোন লেনদেন-কেন্দ্র, কাকে কতটা, কোন ক্রমে। যেহেতু পথটি প্রকাশ্য কোড দিয়ে প্রকাশ্য অবস্থা থেকে নিষ্পন্ন হয়েছে, যে কেউ তা আবার নিষ্পন্ন করতে পারেন।
§3 মেটা-সমীকরণ (Meta-Equation) এবং নির্ভরতার বাজেট
গোটা অ্যাগ্রিগেটরটিকে একটিমাত্র রাশির সর্বোচ্চকরণ হিসেবে পড়া যায়। একটি ইনপুট টোকেন t_in, একটি আউটপুট টোকেন t_out এবং একটি পরিমাণ x দেওয়া থাকলে, Solver গ্রহণযোগ্য পথগুলোর মধ্যে সেটিই খোঁজে যা প্রাপ্ত নিট মূল্যকে সর্বোচ্চ করে, একটি সম্ভাব্যতার মেঝে ও একটি প্রতারণা-রোধী ফটকের অধীনে।
§4 অষ্টমুখী ডিসপ্যাচার Ω (Eightfold Dispatcher Ω)
সরল কথায়: একটিমাত্র ফাংশন যা প্রতিটি ধরনের পুলের দর কষতে জানে। নিখুঁতভাবে: Core-এর universalQuote(QuoteCtx, amountIn) হলো Solver-এর জন্য এবং Quoter-এর পূর্বদর্শনের জন্য দর-ডিসপ্যাচার; এটি প্রত্যাশিত আউটপুট এবং বিভাজন-বণ্টক (Split Allocator)-এর জন্য টোকেনে প্রকাশিত গভীরতা ফেরত দেয়, আর যে পুলের দর সে কষতে পারে না সেটি শূন্য ফেরত দেয় এবং কিছু পাঠানোর আগেই বাদ পড়ে যায়।
§5 Uniswap V4 আগাগোড়া
Uniswap V4 কোনো নতুন পুল-চুক্তি নয়; এটি লেনদেন-কেন্দ্রের একটি নতুন আকার, এবং 2020 থেকে 2024 সালের মধ্যে বানানো প্রতিটি রাউটার যে চারটি অনুমানের উপর দাঁড়িয়ে আছে, সেগুলোকে এটি অকার্যকর করে দেয়। পুলের কোনো ঠিকানা নেই — সেগুলো একটিমাত্র সিঙ্গলটনের স্টোরেজের ভুক্তি, যার চাবি একটি হ্যাশ। সোয়াপের ভেতরেই যথেচ্ছ কোড চলে — রাউটার যে নিষ্পত্তি করছে তার নির্দিষ্ট বিন্দুগুলোতে একটি হুক চলে। ফি ধ্রুবক হওয়ার দরকার নেই। আর পুল শৃঙ্খলের নিজস্ব মুদ্রা ধরে রাখতে পারে, যার কোনো balanceOf নেই। এই বিভাগ চারটিরই উত্তর দেয় কাঠামোগতভাবে, যাতে একটি V4 পা — Solver-এর কাছে, মেঝেগুলোর কাছে এবং ব্যবসায়ীর কাছে — অন্য যে কোনো পা থেকে আলাদা করা না যায়।
§6 Solidly সলভার
কিছু অপরিবর্তনীয়ের এমন কোনো বদ্ধ রূপ নেই যা নিরাপদে পুনরুৎপাদন করার মতো যথেষ্ট সরল, আর সেগুলো পুনরুৎপাদন করাই ঠিক সেই প্রতিলিপি-ঝুঁকি যা প্রোটোকল অন্য সব জায়গায় প্রত্যাখ্যান করে। এমন কেন্দ্রের ক্ষেত্রে ডিসপ্যাচার পুলকেই জিজ্ঞাসা করে, সেই কেন্দ্র যে সবচেয়ে সরু সৎ পথটি খুলে রাখে তার ভেতর দিয়ে — আর যেসব ফর্ক উত্তর দেয় না তাদের জন্য একটি প্রতিলিপি হাতে রাখে।
§7 নিয়তিনির্ধারিত নিষ্পত্তি 𝒟 (Deterministic Derivation 𝒟)
দর কষার আগে পুলটিকে খুঁজে পেতে হবে। শিল্পের উত্তর হলো জিজ্ঞাসা করা: কেন্দ্রের ফ্যাক্টরিতে একটি কল একটি স্টোরেজ ম্যাপিং পড়ে এবং একটি ঠিকানা ফেরত দেয়, আর কলকারী ফ্যাক্টরির কথা মেনে নেয়। BlazePhoenix সেই উত্তরকেও সমর্থন করে — চারটি ফ্যাক্টরি-কল ধরন সেইসব কেন্দ্র ঢেকে দেয় যাদের মোতায়েন পুনরুৎপাদনযোগ্য নয় — কিন্তু পাটিগণিত যেখানে অনুমতি দেয় সেখানে আরও শক্ত উত্তরকেই বেছে নেয়: ঠিকানাটি কষে নাও, কোনো বাইরের কল ছাড়াই। কষে বের করা ঠিকানা একই তিনটি ইনপুট আছে এমন যে কেউ যাচাই করতে পারেন; এনে দেওয়া ঠিকানার উপর কেবল ভরসা করা যায়।
§8 মনোস্লট (Monoslot)
EVM-এ যা কিছু করা হোক, তার প্রধান খরচ স্টোরেজ: একটি ঠান্ডা SLOAD-এর দাম 2,100 gas, আর যে রেজিস্ট্রি একটি পুলের বৈশিষ্ট্যগুলো আলাদা আলাদা স্লটে ছড়িয়ে রাখে, তাকে প্রতিটি বৈশিষ্ট্যের জন্য, প্রতিটি পুলের জন্য, মূল্যায়িত প্রতিটি পথে সেই দাম আবার দিতে হবে। BlazePhoenix একটি পুলের পুরো রাউটিং-অবস্থা একটিমাত্র 256-বিট শব্দে ভরে দেয় — মনোস্লট — যা একবার পড়া হয় এবং বিশুদ্ধ পাটিগণিতে খোলা হয়।
§9 স্ব-নিরাময়ী রেজিস্ট্রি (Self-Healing Registry) এবং সজীবতা ক্ষেত্র Ψ (Vitality Field Ψ)
বেশির ভাগ অ্যাগ্রিগেটর নিজেদের কেন্দ্রগুলো চেনে এই কারণে যে কোনো কিপার অফ-চেইনে পুলের সূচি বানায় এবং তালিকা অন-চেইনে ঠেলে দেয় — একটি বিশ্বাসনির্ভর প্রক্রিয়া, একটি বাসি হওয়ার জানালা এবং একটি পরিচালনাগত নির্ভরতা; এই তিনটিই এমন জিনিস যা অন-চেইনে পথ সমাধান করা কোনো প্রোটোকল মেনে নিতে পারে না। BlazePhoenix উল্টো অবস্থান নেয়: রেজিস্ট্রি তারল্যের কারবার করেই তারল্যকে চেনে।
§10 রাউটিং এবং বিভাজন-বণ্টক (Split Allocator)
ধ্রুব-গুণফল পুল একটিমাত্র নিয়মে দর ঠিক করে: তার দুই সঞ্চয়ের গুণফল কখনো ছোট হতে পারে না। ফি-ধারণ γ সহ Δ ঢালুন (0.30 % কেন্দ্র-ফি মানে γ = 0.997) আর আপনি পাবেন yγΔ / (x + γΔ), যেখানে হরে বসে আছে আপনার নিজেরই ইনপুট: একটিমাত্র পুল দিয়ে যত বেশি ঠেলবেন, পরের প্রতিটি টোকেন তত কম দেবে। স্লিপেজ পাটিগণিত, আর তার দাওয়াইও তাই: একই জোড়ার কয়েকটি পুলে একই আদেশ ভাগ করে দিলে প্রতিটি পুল কম নড়ে।
§11 নির্বাহ স্তর এবং লৌহ-নিয়ম মেঝে Φ (Iron-Law floor Φ)
Solver প্রস্তাব করে; Router নিষ্পন্ন করে — পরমাণুবৎ, নয়তো একেবারেই নয়। Router-ই একমাত্র চুক্তি যা তহবিল নাড়ে, লেনদেনের মাঝে কিছুই ধরে রাখে না, এবং একটিমাত্র নীতির উপর গড়া: প্রতিটি বিষয়ের জন্য একটি ব্যবস্থা, সর্বত্র সমানভাবে প্রযুক্ত। যা সে মাপতে পারে, তা নিয়ে সে কিছুই ধরে নেয় না।
§12 দরের তলগুলো, এবং একটি দর কীভাবে পুরনো হয়
“আপনার দর” নামের সংখ্যাটি দুটি জায়গা থেকে আসতে পারে, আর সেগুলো আলাদা কোড-পথ: একটি হলো Quoter, কেবল-পাঠ্য একটি পূর্বদর্শন চুক্তি যাকে ইন্টারফেস আপনার সই করার আগে ডাকে; অন্যটি ফ্রেমের-ভেতরের পথ, যেখানে Solver ও Router চলমান লেনদেনের ভেতরেই দর কষে। §4.4 ধরন-অনুযায়ী সত্যটি দিয়েছে; এই বিভাগ তলগুলো দেয় এবং তাদের মধ্যেকার ব্যবধান মাপে।
§13 ফি-নীতি: দুই বন্দোবস্ত এবং উদ্বৃত্ত নিয়ম (Surplus Rule)
সরল কথায়: প্রোটোকল একবারই 0.28 % নেয়, একটি মাপা পরিমাণ থেকে, এমন মুদ্রায় যা কোষাগার ধরে রাখতে চায়, এবং নিয়েছে বলে তা গুনে রাখে। নিখুঁতভাবে: PROTOCOL_FEE_BPS = 28 হলো Core-এর একটি কম্পাইল-কালীন ধ্রুবক, মোতায়েন করা বাইটকোডের কোথাও কোনো সেটার নেই; ফি হলো mulDivUp(base, 28, 10,000) — উপরের দিকে পূর্ণ করা, তাই শূন্য নয় এমন যে কোনো ভিত্তির জন্য শূন্য ফি অনধিগম্য — যা TREASURY1_SHARE = 3,000 bps প্রথম কোষাগারে এবং বাকিটা দ্বিতীয়টিতে ভাগ হয় (fee − t1 হিসেবে কষা, ফলে দুটির যোগফল সবসময় ফি-র সমান হয়, কোনো ধুলো পড়ে থাকে না); কোষাগার দুটি নির্মাণের সময়েই নির্ধারিত এবং একমুখী দরজা (One-Way Door) দিয়ে চিরতরে জমিয়ে দেওয়া যায়।
§14 নিরাপত্তা মডেল
সরল কথায়: Router লেনদেনের মাঝে কিছুই ধরে রাখে না, প্রতিটি সোয়াপ হয় পুরোটা হয় কিছুই নয়, এবং এই রিপোজিটরি যে আক্রমণ-শ্রেণিগুলো বিবেচনা করেছে তার প্রতিটির উত্তর দেয় নাম-ধরা কোনো যাচাই, নয়তো সেটিকে পরিধির বাইরে বলে নাম-ধরে জানানো হয়। নিখুঁতভাবে: হুমকির তালিকা হলো docs/assurance/threats.json, প্রকাশ্য আক্রমণ-নথি থেকে নেওয়া 23টি শ্রেণি; প্রতিটি সেই প্রহরী-প্রতীকের নাম বলে যা তাকে ফিরিয়ে দেয়, আর সেই প্রতীক src/ ছেড়ে গেলে বা নাম-ধরা পরীক্ষাটি test/ ছেড়ে গেলে একটি CI স্ক্রিপ্ট বিল্ড ফেল করিয়ে দেয়। কোনো তালিকার আচ্ছাদন হলো কী কী বিবেচিত হয়েছে তার মেঝে, কী কী আছে তার ছাদ কখনোই নয়।
§15 যাচাইয়ের যন্ত্র, মাপা
সরল কথায়: এখানকার প্রতিটি সংখ্যা যে হরের সাপেক্ষে মাপা হয়েছে তার পাশে ছাপা, একটি পরিচ্ছন্ন চেকআউট থেকে কোনো স্ক্রিপ্ট বা নাম-ধরা forge কমান্ড (পরিশিষ্ট C) দিয়ে আবার কষে বের করা যায়, এবং তার পরেই বলা আছে সেটি কী প্রতিষ্ঠা করে না। নিখুঁতভাবে: মাপা ট্রি হলো main 8949a9d এবং যে শাখা তা-ই হয়ে উঠেছে, রিলিজ প্রোফাইলে (optimizer_runs = 300, via_ir), 2026-09-05।
§16 স্থাপত্য ও আকার
সরল কথায়: পাঁচটি চুক্তি, যার একটি বিশুদ্ধ গণিত এবং বাকি চারটি সেটিকে আমদানি করে, আর গণিতের কোনো অংশ দুবার সংজ্ঞায়িত নয়। নিখুঁতভাবে: Core একটি অবস্থাহীন লাইব্রেরি, কোনো স্টোরেজ নেই, কোনো মালিক নেই, কোনো আপগ্রেড পথ নেই; Hub, Solver, Router ও Quoter সেটিকে আমদানি করে এবং কেউই কোনো আদিম ক্রিয়া নতুন করে সংজ্ঞায়িত করে না, ফলে গণিতের একটিমাত্র নিরীক্ষা প্রতিটি ব্যবহারকারীকে ঢেকে দেয়।
§17 মাপা কর্মদক্ষতা
সরল কথায়: এই বিভাগের সবকিছু মাপা হয়েছে বাস্তব শৃঙ্খলের ফর্কে — বাস্তব লেনদেন-কেন্দ্র, অচেনা লোকেদের জমা করা বাস্তব সঞ্চয়, একটিমাত্র বাইটকোড — এবং ঠিক সেভাবেই তার গায়ে লেবেল লাগানো। নিখুঁতভাবে: কোনো সংখ্যা এখানে তখনই আসে যখন রিপোজিটরির একটি প্রকাশ্য হারনেস তা পুনরুৎপাদন করে; হারনেস, শৃঙ্খল ও তারিখ তার পাশেই ছাপা। ফর্কে করা মাপ আচরণের সাক্ষ্য, মোতায়েনের নথি নয়; মোতায়েনের নথি §19। §12 ও §15-এর মাপ 2026-09-05 তারিখের; এই বিভাগের অভিযানটি চালানো হয়েছিল 2026 সালের আগস্টে এবং তার হারনেসগুলো আছে test/fork/-এ।
§18 হাড় পর্যন্ত ছেঁটে ফেলা DEX
সতেরোটি অংশের কৌশল, এক পৃষ্ঠায়। একটাই কাজ: দুটি টোকেন, একটি পরিমাণ, আপনার ন্যূনতম, একজন প্রাপক ও একটি সময়সীমা নিয়ে চেইনের পাবলিক লিকুইডিটি যত বেশি আউটপুট দিতে পারে তা ফেরত দেওয়া — অথবা কারণ জানানো কোড দিয়ে প্রত্যাখ্যান করা। পাঁচটি কন্ট্র্যাক্ট একটি গণিত ভাগ করে (Core, Hub, Solver, Router, Quoter); ছয় ধরনের venue একটি ডিসপ্যাচার দিয়ে মূল্য পায়; চারটি দরজা একটি এক্সিকিউটরে পৌঁছায়; প্রতিটি ট্রেডের নিচে তিনটি ফ্লোর ও আপনার নিজের ন্যূনতম; ০.২৮% ফি কম্পাইল করা, কেউ তা বদলাতে পারে না।
§19 মোতায়েনের অবস্থা
এই পেপার রিপোজিটরির নথি, আর রিপোজিটরিই প্রামাণিক: যেখানে এই পাঠ ও উৎস একমত নয়, সেখানে উৎসই জেতে। দুটি প্রজন্ম আছে এবং তাদের কখনো গুলিয়ে ফেলা হয় না।
§20 টোকেন — BZPX
এক বিলিয়ন BZPX, চিরকালের জন্য স্থির, একটি সাধারণ ERC-20: ১৮ দশমিক, কোনো mint পথ নেই, ট্রান্সফার ফি নেই, rebasing নেই, ট্রান্সফার hook নেই, pause বা blacklist নেই। সংস্করণ 2.3-এর বণ্টন: বাজার তারল্য 520,000,000 (52%), staking নির্গমন 180,000,000 (18%), Airdrop & Bounties 130,000,000 (13% — আগের 50,000,000 airdrop, আগের 50,000,000 গবেষণা পুল এবং বাজার তারল্য থেকে সরানো 30,000,000), টিম 103,000,000 (10.3%), পার্টনার 60,000,000 (6%), মার্কেটিং 7,000,000 (0.7%)।
§21 গবেষণা কর্মসূচি ও নিরাপত্তার নথি
এই প্রকল্পের নামের যোগ্য কোনো গবেষণা কর্মসূচি থাকার আগেই স্বাধীন গবেষকেরা উৎসটি শত্রুভাবে পড়েছিলেন — বিনা আমন্ত্রণে, কোনো প্রতিশ্রুতি ছাড়াই — এবং যা দেখেছিলেন তা ব্যক্তিগতভাবে জানিয়েছিলেন। এই পেপার যে কোডের বর্ণনা দেয়, সেটিই সেই কোড যা তাঁদের পাঠ থেকে বেঁচে ফিরেছে। তাঁদের প্রত্যেকে কী জানিয়েছিলেন, আর তার পরিণতি কী হয়েছিল, তা থাকে যেখানে এমন নথির থাকা উচিত: রিপোজিটরির SECURITY.md ও SECURITY_HALL_OF_FAME.md-এ, কোডের পাশেই, যেখানে প্রতিটি ভুক্তি দুই দিক থেকেই যাচাই করা যায়। এই বিভাগ নথিবদ্ধ করে তাঁরা কারা, শত্রুভাবে পড়ায় কী মেলে, এবং যা পাওয়া গেছে তার আকার কেমন।
§22 আপনাকে কীসে ভরসা করতেই হবে, আর কীসে হবে না
প্রতিটি প্রোটোকলই নিজেকে বিশ্বাস-নিরপেক্ষ বলে দাবি করে; প্রায় কেউই নিজের ব্যতিক্রমগুলো গুনে দেখাতে পারে না। এই যে সম্পূর্ণ তালিকা, প্রতিটি ক্ষমতা সেই রেখাসহ বলা যা তাকে বেঁধে রাখে।
§23 সম্পর্কিত কাজ
রাউটিং। Angeris, Evans, Chitra এবং Boyd ধ্রুব-ফাংশন মার্কেট মেকারদের জুড়ে রাউটিংকে একটি উত্তল প্রোগ্রাম হিসেবে গড়েন, যার সর্বোত্তম সমাধান কেন্দ্রগুলোর প্রান্তিক দামগুলোকে সমান করে দেয়; Diamandis, Resnick, Chitra এবং Angeris তার জন্য একটি দক্ষ দ্বৈত-বিযোজন অ্যালগরিদম দেন।
§24 উপসংহার
আমরা একটিমাত্র শৃঙ্খলার উপর একটি অ্যাগ্রিগেটর গড়তে বেরিয়েছিলাম — মাপো, বিশ্বাস কোরো না — এবং সেটিকে ধরে রাখতে চেয়েছিলাম প্রতিটি সেই বিন্দুতে যেখানে কোনো সংখ্যা বরং কারও কথায় মেনে নেওয়া যেত: পথ, দাম, মেঝে, ফি-র ভিত্তি, কেন্দ্রগুলোর সমষ্টি, একটি পুল যে জোড়ার কারবার করে বলে দাবি করে সেটি, এমনকি প্রোটোকলের নিজের খরচের মডেলটিও।
Questions, a partnership or a bug to report? Contact us or email contact@blazephoenix.xyz