diff --git a/src/entities.ts b/src/entities.ts
index 9c4b9250c9bcee72b58e52f57d2230b6873e5c77..ff2762a98fff773b71afdb9d2e3190cd736847d4 100644
--- a/src/entities.ts
+++ b/src/entities.ts
@@ -156,7 +156,11 @@ export type MessagingMessage = {
 
 export type InstanceMetadata = {
 	emojis: {
+		id: string;
+		name: string;
+		url: string;
 		category: string;
+		aliases: string[];
 	}[];
 	ads: {
 		id: ID;
diff --git a/src/streaming.ts b/src/streaming.ts
index b609d831ab8f7e6192fe85dc417e005e34c6844e..644fa6b3925e64e06f25732be34cc01cacdf8b01 100644
--- a/src/streaming.ts
+++ b/src/streaming.ts
@@ -3,7 +3,7 @@ import { EventEmitter } from 'eventemitter3';
 import ReconnectingWebsocket from 'reconnecting-websocket';
 import { stringify } from 'querystring';
 import { markRaw } from '@vue/reactivity';
-import { MeDetailed, MessagingMessage, Note, Notification, PageEvent, User } from './entities';
+import { DriveFile, MeDetailed, MessagingMessage, Note, Notification, PageEvent, User } from './entities';
 
 function urlQuery(obj: {}): string {
 	return stringify(Object.entries(obj)
@@ -25,6 +25,21 @@ type ChannelDef = {
 			unfollow: (payload: User) => void; // 自分が他人をフォロー解除したとき
 			meUpdated: (payload: MeDetailed) => void;
 			pageEvent: (payload: PageEvent) => void;
+			urlUploadFinished: (payload: { marker: string; file: DriveFile; }) => void;
+			readAllNotifications: () => void;
+			unreadNotification: () => void;
+			unreadMention: () => void;
+			readAllUnreadMentions: () => void;
+			unreadSpecifiedNote: () => void;
+			readAllUnreadSpecifiedNotes: () => void;
+			readAllMessagingMessages: () => void;
+			unreadMessagingMessage: () => void;
+			readAllAntennas: () => void;
+			unreadAntenna: () => void;
+			readAllAnnouncements: () => void;
+			readAllChannels: () => void;
+			unreadChannel: () => void;
+			myTokenRegenerated: () => void;
 		};
 	};
 	homeTimeline: {