diff --git a/.changeset/shaggy-turkeys-end.md b/.changeset/shaggy-turkeys-end.md
new file mode 100644
index 0000000..71f3492
--- /dev/null
+++ b/.changeset/shaggy-turkeys-end.md
@@ -0,0 +1,5 @@
+---
+"@blaze-cardano/query": patch
+---
+
+fix cost model encoding for plutusv3
diff --git a/packages/blaze-query/src/blockfrost.ts b/packages/blaze-query/src/blockfrost.ts
index 64b5630..aa03d9c 100644
--- a/packages/blaze-query/src/blockfrost.ts
+++ b/packages/blaze-query/src/blockfrost.ts
@@ -83,15 +83,11 @@ export class Blockfrost extends Provider {
     }
     // Build cost models
     const costModels: CostModels = new Map();
-    for (const cm of Object.keys(
-      response.cost_models,
-    ) as BlockfrostLanguageVersions[]) {
-      const costModel: number[] = [];
-      const keys = Object.keys(response.cost_models[cm]).sort();
-      for (const key of keys) {
-        costModel.push(response.cost_models[cm][key]!);
-      }
-      costModels.set(fromBlockfrostLanguageVersion(cm), costModel);
+    for (const [key, value] of Object.entries(response.cost_models_raw)) {
+      costModels.set(
+        fromBlockfrostLanguageVersion(key as BlockfrostLanguageVersions),
+        value,
+      );
     }
 
     return {
@@ -737,6 +733,7 @@ export interface BlockfrostProtocolParametersResponse {
   min_pool_cost: number;
   nonce: string;
   cost_models: Record<BlockfrostLanguageVersions, { [key: string]: number }>;
+  cost_models_raw: Record<BlockfrostLanguageVersions, number[]>;
   price_mem: string;
   price_step: string;
   max_tx_ex_mem: number;