diff --git a/bin/fidlgen_dart/backend/ir/ir.go b/bin/fidlgen_dart/backend/ir/ir.go
index 61fe0cf..d99b5e4 100644
--- a/bin/fidlgen_dart/backend/ir/ir.go
+++ b/bin/fidlgen_dart/backend/ir/ir.go
@@ -177,8 +177,10 @@
 
 // Method represents a method declaration within an interface declaration.
 type Method struct {
-	Ordinal            types.Ordinal
+	Ordinal            string
 	OrdinalName        string
+	GenOrdinal         string
+	GenOrdinalName     string
 	Name               string
 	HasRequest         bool
 	Request            []Parameter
@@ -596,7 +598,7 @@
 		if err != nil {
 			panic(fmt.Sprintf("JSON IR contains invalid numeric literal: %s", val.Value))
 		}
-		return fmt.Sprintf("0x%s", strconv.FormatUint(num, 16))
+		return fmt.Sprintf("%#x", num)
 	case types.TrueLiteral:
 		return "true"
 	case types.FalseLiteral:
@@ -964,8 +966,10 @@
 	}
 	_, transitional := val.LookupAttribute("Transitional")
 	return Method{
-		Ordinal:            val.Ordinal,
+		Ordinal:            fmt.Sprintf("%#x", uint64(val.Ordinal)<<32),
 		OrdinalName:        fmt.Sprintf("_k%s_%s_Ordinal", protocol.Name, val.Name),
+		GenOrdinal:         fmt.Sprintf("%#x", uint64(val.GenOrdinal)<<32),
+		GenOrdinalName:     fmt.Sprintf("_k%s_%s_GenOrdinal", protocol.Name, val.Name),
 		Name:               name,
 		HasRequest:         val.HasRequest,
 		Request:            request,
diff --git a/bin/fidlgen_dart/backend/templates/interface.tmpl.go b/bin/fidlgen_dart/backend/templates/interface.tmpl.go
index 776763d..1289e3d 100644
--- a/bin/fidlgen_dart/backend/templates/interface.tmpl.go
+++ b/bin/fidlgen_dart/backend/templates/interface.tmpl.go
@@ -38,6 +38,9 @@
 {{ range .Methods }}
 // {{ .Name }}: {{ if .HasRequest }}({{ template "Params" .Request }}){{ end }}{{ if .HasResponse }} -> ({{ template "Params" .Response.WireParameters }}){{ end }}
 const int {{ .OrdinalName }} = {{ .Ordinal }};
+{{- if ne .Ordinal .GenOrdinal }}
+const int {{ .GenOrdinalName }} = {{ .GenOrdinal }};
+{{ end }}
 const $fidl.MethodType {{ .TypeSymbol }} = {{ .TypeExpr }};
 {{- end }}
 
@@ -62,6 +65,9 @@
 {{- range .Methods }}
 {{- if not .HasRequest }}
   {{- if .HasResponse }}
+      {{- if ne .Ordinal .GenOrdinal }}
+      case {{ .GenOrdinalName }}:
+      {{ end }}
       case {{ .OrdinalName }}:
         final String _name = {{ .TypeSymbol }}.name;
         try {
@@ -113,6 +119,9 @@
 {{- range .Methods }}
   {{- if .HasRequest }}
     {{- if .HasResponse }}
+      {{- if ne .Ordinal .GenOrdinal }}
+      case {{ .GenOrdinalName }}:
+      {{ end }}
       case {{ .OrdinalName }}:
         final String _name = {{ .TypeSymbol }}.name;
         try {
@@ -256,6 +265,9 @@
     switch ($message.ordinal) {
 {{- range .Methods }}
   {{- if .HasRequest }}
+      {{- if ne .Ordinal .GenOrdinal }}
+      case {{ .GenOrdinalName }}:
+      {{ end }}
       case {{ .OrdinalName }}:
         final String _name = {{ .TypeSymbol }}.name;
         try {
@@ -386,6 +398,9 @@
 // {{ .Name }}: {{ if .HasRequest }}({{ template "AsyncParams" .Request }}){{ end -}}
                 {{- if .HasResponse }} -> ({{ template "AsyncParams" .Response.MethodParameters }}){{ end }}
 const int {{ .OrdinalName }} = {{ .Ordinal }};
+{{- if ne .Ordinal .GenOrdinal }}
+const int {{ .GenOrdinalName }} = {{ .GenOrdinal }};
+{{ end }}
 const $fidl.MethodType {{ .TypeSymbol }} = {{ .TypeExpr }};
 {{- end }}
 
@@ -484,6 +499,9 @@
 {{- range .Methods }}
 {{- if not .HasRequest }}
   {{- if .HasResponse }}
+      {{- if ne .Ordinal .GenOrdinal }}
+      case {{ .GenOrdinalName }}:
+      {{ end }}
       case {{ .OrdinalName }}:
         final String _name = {{ .TypeSymbol }}.name;
         try {
@@ -528,6 +546,9 @@
 {{- range .Methods }}
   {{- if .HasRequest }}
     {{- if .HasResponse }}
+      {{- if ne .Ordinal .GenOrdinal }}
+      case {{ .GenOrdinalName }}:
+      {{ end }}
       case {{ .OrdinalName }}:
         final String _name = {{ .TypeSymbol }}.name;
         try {
@@ -657,6 +678,9 @@
     switch ($message.ordinal) {
     {{- range .Methods }}
       {{- if .HasRequest }}
+          {{- if ne .Ordinal .GenOrdinal }}
+          case {{ .GenOrdinalName }}:
+          {{ end }}
           case {{ .OrdinalName }}:
             final String _name = {{ .TypeSymbol }}.name;
             try {
diff --git a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
index 0099f86..1cd242a 100644
--- a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
@@ -194,14 +194,14 @@
 typedef _VoidCallback = void Function();
 
 // method: ()
-const int _kInterface_Method_Ordinal = 1061382220;
+const int _kInterface_Method_Ordinal = 0x3f43684c00000000;
 const $fidl.MethodType _kInterface_Method_Type = $fidl.MethodType(
   request: null,
   response: null,
   name: r"Interface.Method",
 );
 // onEvent:  -> ()
-const int _kInterface_OnEvent_Ordinal = 325918733;
+const int _kInterface_OnEvent_Ordinal = 0x136d200d00000000;
 const $fidl.MethodType _kInterface_OnEvent_Type = $fidl.MethodType(
   request: null,
   response: null,
diff --git a/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json_async.dart.golden
index 4de8ae5..7fb7285 100644
--- a/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json_async.dart.golden
@@ -43,14 +43,14 @@
 typedef _VoidCallback = void Function();
 
 // ordinalFive: ()
-const int _kSwitchingOrdinals_OrdinalFive_Ordinal = 2005164903;
+const int _kSwitchingOrdinals_OrdinalFive_Ordinal = 0x7784636700000000;
 const $fidl.MethodType _kSwitchingOrdinals_OrdinalFive_Type = $fidl.MethodType(
   request: null,
   response: null,
   name: r"SwitchingOrdinals.OrdinalFive",
 );
 // onlyGeneratedOrdinal: ()
-const int _kSwitchingOrdinals_OnlyGeneratedOrdinal_Ordinal = 667506719;
+const int _kSwitchingOrdinals_OnlyGeneratedOrdinal_Ordinal = 0x27c9581f00000000;
 const $fidl.MethodType _kSwitchingOrdinals_OnlyGeneratedOrdinal_Type =
     $fidl.MethodType(
   request: null,
@@ -58,7 +58,7 @@
   name: r"SwitchingOrdinals.OnlyGeneratedOrdinal",
 );
 // eventOrdinalFifteen:  -> ()
-const int _kSwitchingOrdinals_EventOrdinalFifteen_Ordinal = 1467258273;
+const int _kSwitchingOrdinals_EventOrdinalFifteen_Ordinal = 0x577495a100000000;
 const $fidl.MethodType _kSwitchingOrdinals_EventOrdinalFifteen_Type =
     $fidl.MethodType(
   request: null,
@@ -66,7 +66,8 @@
   name: r"SwitchingOrdinals.EventOrdinalFifteen",
 );
 // eventOnlyGeneratedOrdinal:  -> ()
-const int _kSwitchingOrdinals_EventOnlyGeneratedOrdinal_Ordinal = 2146190926;
+const int _kSwitchingOrdinals_EventOnlyGeneratedOrdinal_Ordinal =
+    0x7fec464e00000000;
 const $fidl.MethodType _kSwitchingOrdinals_EventOnlyGeneratedOrdinal_Type =
     $fidl.MethodType(
   request: null,
diff --git a/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json_async.dart.golden
index 05b7377..97a2ffd 100644
--- a/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json_async.dart.golden
@@ -119,7 +119,7 @@
 }
 
 // getChild: () -> ($fidl.InterfaceHandle<Child> c)
-const int _kParent_GetChild_Ordinal = 915586153;
+const int _kParent_GetChild_Ordinal = 0x3692bc6900000000;
 const $fidl.MethodType _kParent_GetChild_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -129,7 +129,7 @@
   name: r"Parent.GetChild",
 );
 // getChildRequest: () -> ($fidl.InterfaceRequest<Child> r)
-const int _kParent_GetChildRequest_Ordinal = 1068158078;
+const int _kParent_GetChildRequest_Ordinal = 0x3faacc7e00000000;
 const $fidl.MethodType _kParent_GetChildRequest_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -139,7 +139,7 @@
   name: r"Parent.GetChildRequest",
 );
 // takeChild: ($fidl.InterfaceHandle<Child> c)
-const int _kParent_TakeChild_Ordinal = 1275478777;
+const int _kParent_TakeChild_Ordinal = 0x4c0642f900000000;
 const $fidl.MethodType _kParent_TakeChild_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<$fidl.InterfaceHandle<Child>>(
@@ -149,7 +149,7 @@
   name: r"Parent.TakeChild",
 );
 // takeChildRequest: ($fidl.InterfaceRequest<Child> r)
-const int _kParent_TakeChildRequest_Ordinal = 1589872250;
+const int _kParent_TakeChildRequest_Ordinal = 0x5ec3867a00000000;
 const $fidl.MethodType _kParent_TakeChildRequest_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<$fidl.InterfaceRequest<Child>>(
diff --git a/bin/fidlgen_dart/goldens/protocols.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/protocols.test.fidl.json_async.dart.golden
index 664f751..1ef608f 100644
--- a/bin/fidlgen_dart/goldens/protocols.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/protocols.test.fidl.json_async.dart.golden
@@ -343,7 +343,7 @@
 
 // noRequestNoResponse: ()
 const int _kWithAndWithoutRequestResponse_NoRequestNoResponse_Ordinal =
-    503576693;
+    0x1e03f87500000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_NoRequestNoResponse_Type = $fidl.MethodType(
   request: null,
@@ -352,7 +352,7 @@
 );
 // noRequestEmptyResponse: () -> ()
 const int _kWithAndWithoutRequestResponse_NoRequestEmptyResponse_Ordinal =
-    1308023765;
+    0x4df6dbd500000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_NoRequestEmptyResponse_Type =
     $fidl.MethodType(
@@ -362,7 +362,7 @@
 );
 // noRequestWithResponse: () -> (String ret)
 const int _kWithAndWithoutRequestResponse_NoRequestWithResponse_Ordinal =
-    107534328;
+    0x668d7f800000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_NoRequestWithResponse_Type =
     $fidl.MethodType(
@@ -376,7 +376,7 @@
 );
 // withRequestNoResponse: (String arg)
 const int _kWithAndWithoutRequestResponse_WithRequestNoResponse_Ordinal =
-    432149361;
+    0x19c2137100000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_WithRequestNoResponse_Type =
     $fidl.MethodType(
@@ -390,7 +390,7 @@
 );
 // withRequestEmptyResponse: (String arg) -> ()
 const int _kWithAndWithoutRequestResponse_WithRequestEmptyResponse_Ordinal =
-    1995585907;
+    0x76f2397300000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_WithRequestEmptyResponse_Type =
     $fidl.MethodType(
@@ -404,7 +404,7 @@
 );
 // withRequestWithResponse: (String arg) -> (String ret)
 const int _kWithAndWithoutRequestResponse_WithRequestWithResponse_Ordinal =
-    426977568;
+    0x1973292000000000;
 const $fidl.MethodType
     _kWithAndWithoutRequestResponse_WithRequestWithResponse_Type =
     $fidl.MethodType(
@@ -421,7 +421,8 @@
   name: r"WithAndWithoutRequestResponse.WithRequestWithResponse",
 );
 // onEmptyResponse:  -> ()
-const int _kWithAndWithoutRequestResponse_OnEmptyResponse_Ordinal = 1769985842;
+const int _kWithAndWithoutRequestResponse_OnEmptyResponse_Ordinal =
+    0x697fd73200000000;
 const $fidl.MethodType _kWithAndWithoutRequestResponse_OnEmptyResponse_Type =
     $fidl.MethodType(
   request: null,
@@ -429,7 +430,8 @@
   name: r"WithAndWithoutRequestResponse.OnEmptyResponse",
 );
 // onWithResponse:  -> (String ret)
-const int _kWithAndWithoutRequestResponse_OnWithResponse_Ordinal = 2051478023;
+const int _kWithAndWithoutRequestResponse_OnWithResponse_Ordinal =
+    0x7a47120700000000;
 const $fidl.MethodType _kWithAndWithoutRequestResponse_OnWithResponse_Type =
     $fidl.MethodType(
   request: null,
@@ -997,7 +999,7 @@
 }
 
 // errorAsPrimitive: () -> ()
-const int _kWithErrorSyntax_ErrorAsPrimitive_Ordinal = 2069369145;
+const int _kWithErrorSyntax_ErrorAsPrimitive_Ordinal = 0x7b58113900000000;
 const $fidl.MethodType _kWithErrorSyntax_ErrorAsPrimitive_Type =
     $fidl.MethodType(
   request: null,
@@ -1008,7 +1010,7 @@
   name: r"WithErrorSyntax.ErrorAsPrimitive",
 );
 // errorAsEnum: () -> ()
-const int _kWithErrorSyntax_ErrorAsEnum_Ordinal = 1284890143;
+const int _kWithErrorSyntax_ErrorAsEnum_Ordinal = 0x4c95de1f00000000;
 const $fidl.MethodType _kWithErrorSyntax_ErrorAsEnum_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -1261,7 +1263,7 @@
 }
 
 // methodA: (int a, int b)
-const int _kOvernetInternalProtocol_MethodA_Ordinal = 1993818253;
+const int _kOvernetInternalProtocol_MethodA_Ordinal = 0x76d7408d00000000;
 const $fidl.MethodType _kOvernetInternalProtocol_MethodA_Type =
     $fidl.MethodType(
   request: <$fidl.MemberType>[
@@ -1272,7 +1274,7 @@
   name: r"OvernetInternalProtocol.MethodA",
 );
 // eventA:  -> (int a, int b)
-const int _kOvernetInternalProtocol_EventA_Ordinal = 1746007436;
+const int _kOvernetInternalProtocol_EventA_Ordinal = 0x6811f58c00000000;
 const $fidl.MethodType _kOvernetInternalProtocol_EventA_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -1282,7 +1284,7 @@
   name: r"OvernetInternalProtocol.EventA",
 );
 // methodB: (int a, int b) -> (int result)
-const int _kOvernetInternalProtocol_MethodB_Ordinal = 952134976;
+const int _kOvernetInternalProtocol_MethodB_Ordinal = 0x38c06d4000000000;
 const $fidl.MethodType _kOvernetInternalProtocol_MethodB_Type =
     $fidl.MethodType(
   request: <$fidl.MemberType>[
@@ -1295,7 +1297,7 @@
   name: r"OvernetInternalProtocol.MethodB",
 );
 // mutateSocket: ($zx.Socket a) -> ($zx.Socket b)
-const int _kOvernetInternalProtocol_MutateSocket_Ordinal = 1691201382;
+const int _kOvernetInternalProtocol_MutateSocket_Ordinal = 0x64cdaf6600000000;
 const $fidl.MethodType _kOvernetInternalProtocol_MutateSocket_Type =
     $fidl.MethodType(
   request: <$fidl.MemberType>[
@@ -1649,7 +1651,7 @@
 }
 
 // methodA: (int a, int b)
-const int _kSocketControlProtocol_MethodA_Ordinal = 1007842318;
+const int _kSocketControlProtocol_MethodA_Ordinal = 0x3c12740e00000000;
 const $fidl.MethodType _kSocketControlProtocol_MethodA_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -1659,7 +1661,7 @@
   name: r"SocketControlProtocol.MethodA",
 );
 // eventA:  -> (int a, int b)
-const int _kSocketControlProtocol_EventA_Ordinal = 955483393;
+const int _kSocketControlProtocol_EventA_Ordinal = 0x38f3850100000000;
 const $fidl.MethodType _kSocketControlProtocol_EventA_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -1669,7 +1671,7 @@
   name: r"SocketControlProtocol.EventA",
 );
 // methodB: (int a, int b) -> (int result)
-const int _kSocketControlProtocol_MethodB_Ordinal = 677342235;
+const int _kSocketControlProtocol_MethodB_Ordinal = 0x285f6c1b00000000;
 const $fidl.MethodType _kSocketControlProtocol_MethodB_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -1681,7 +1683,7 @@
   name: r"SocketControlProtocol.MethodB",
 );
 // mutateSocket: ($zx.Socket a) -> ($zx.Socket b)
-const int _kSocketControlProtocol_MutateSocket_Ordinal = 255772213;
+const int _kSocketControlProtocol_MutateSocket_Ordinal = 0xf3ec63500000000;
 const $fidl.MethodType _kSocketControlProtocol_MutateSocket_Type =
     $fidl.MethodType(
   request: <$fidl.MemberType>[
@@ -2035,7 +2037,7 @@
 }
 
 // methodA: (int a, int b)
-const int _kChannelProtocol_MethodA_Ordinal = 1432785874;
+const int _kChannelProtocol_MethodA_Ordinal = 0x556693d200000000;
 const $fidl.MethodType _kChannelProtocol_MethodA_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -2045,7 +2047,7 @@
   name: r"ChannelProtocol.MethodA",
 );
 // eventA:  -> (int a, int b)
-const int _kChannelProtocol_EventA_Ordinal = 477676034;
+const int _kChannelProtocol_EventA_Ordinal = 0x1c78c20200000000;
 const $fidl.MethodType _kChannelProtocol_EventA_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -2055,7 +2057,7 @@
   name: r"ChannelProtocol.EventA",
 );
 // methodB: (int a, int b) -> (int result)
-const int _kChannelProtocol_MethodB_Ordinal = 180770075;
+const int _kChannelProtocol_MethodB_Ordinal = 0xac6551b00000000;
 const $fidl.MethodType _kChannelProtocol_MethodB_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -2067,7 +2069,7 @@
   name: r"ChannelProtocol.MethodB",
 );
 // mutateSocket: ($zx.Socket a) -> ($zx.Socket b)
-const int _kChannelProtocol_MutateSocket_Ordinal = 1258480262;
+const int _kChannelProtocol_MutateSocket_Ordinal = 0x4b02e28600000000;
 const $fidl.MethodType _kChannelProtocol_MutateSocket_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<$zx.Socket>(
@@ -2415,7 +2417,7 @@
 }
 
 // methodA: (int a, int b)
-const int _kKitchenSink_MethodA_Ordinal = 450577456;
+const int _kKitchenSink_MethodA_Ordinal = 0x1adb443000000000;
 const $fidl.MethodType _kKitchenSink_MethodA_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -2425,7 +2427,7 @@
   name: r"KitchenSink.MethodA",
 );
 // eventA:  -> (int a, int b)
-const int _kKitchenSink_EventA_Ordinal = 1795426833;
+const int _kKitchenSink_EventA_Ordinal = 0x6b040a1100000000;
 const $fidl.MethodType _kKitchenSink_EventA_Type = $fidl.MethodType(
   request: null,
   response: <$fidl.MemberType>[
@@ -2435,7 +2437,7 @@
   name: r"KitchenSink.EventA",
 );
 // methodB: (int a, int b) -> (int result)
-const int _kKitchenSink_MethodB_Ordinal = 1999489700;
+const int _kKitchenSink_MethodB_Ordinal = 0x772dcaa400000000;
 const $fidl.MethodType _kKitchenSink_MethodB_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<int>(type: $fidl.Int64Type(), offset: 16),
@@ -2447,7 +2449,7 @@
   name: r"KitchenSink.MethodB",
 );
 // mutateSocket: ($zx.Socket a) -> ($zx.Socket b)
-const int _kKitchenSink_MutateSocket_Ordinal = 115851270;
+const int _kKitchenSink_MutateSocket_Ordinal = 0x6e7c00600000000;
 const $fidl.MethodType _kKitchenSink_MutateSocket_Type = $fidl.MethodType(
   request: <$fidl.MemberType>[
     $fidl.MemberType<$zx.Socket>(
diff --git a/public/dart/fidl/lib/src/codec.dart b/public/dart/fidl/lib/src/codec.dart
index 1d60e90..068533b 100644
--- a/public/dart/fidl/lib/src/codec.dart
+++ b/public/dart/fidl/lib/src/codec.dart
@@ -73,7 +73,7 @@
 
   void encodeMessageHeader(int ordinal, int txid) {
     alloc(kMessageHeaderSize);
-    encodeUint32(ordinal, kMessageOrdinalOffset);
+    encodeUint64(ordinal, kMessageOrdinalOffset);
     encodeUint32(txid, kMessageTxidOffset);
   }
 
diff --git a/public/dart/fidl/lib/src/message.dart b/public/dart/fidl/lib/src/message.dart
index 3190ec0..2175717 100644
--- a/public/dart/fidl/lib/src/message.dart
+++ b/public/dart/fidl/lib/src/message.dart
@@ -10,7 +10,7 @@
 
 const int kMessageHeaderSize = 16;
 const int kMessageTxidOffset = 0;
-const int kMessageOrdinalOffset = 12;
+const int kMessageOrdinalOffset = 8;
 
 class Message {
   Message(this.data, this.handles, this.dataLength, this.handlesLength);
@@ -30,7 +30,7 @@
   set txid(int value) =>
       data.setUint32(kMessageTxidOffset, value, Endian.little);
 
-  int get ordinal => data.getUint32(kMessageOrdinalOffset, Endian.little);
+  int get ordinal => data.getUint64(kMessageOrdinalOffset, Endian.little);
 
   void hexDump() {
     const int width = 16;
