diff --git a/admin/src/api/types.ts b/admin/src/api/types.ts
index 1e1d492a..16d11bcf 100644
--- a/admin/src/api/types.ts
+++ b/admin/src/api/types.ts
@@ -59,6 +59,14 @@ export type BulkResult = Schemas['cabana.BulkResult']
export type BulkAction = Schemas['cabana.BulkAction']
/** A record action the record response offers: name, label and confirm text. */
export type RecordAction = Schemas['cabana.RecordAction']
+/** The text input a prompted record action asks for in its confirm dialog. */
+export type RecordActionPrompt = Schemas['cabana.RecordActionPrompt']
+/** A section a plugin contributes to My account: label, status and offered actions. */
+export type AccountContribution = Schemas['cabana.AccountContributionView']
+/** One action of a contributed My account section. */
+export type AccountContributionAction = Schemas['cabana.AccountContributionActionView']
+/** An account contribution action's answer: the toast message and an optional URL. */
+export type AccountActionResult = Schemas['cabana.AccountActionResultView']
/** A declared bulk action's answer: the toast message and the affected count. */
export type BulkActionResult = Schemas['cabana.BulkActionResult']
/** Body of a widget action: the record id (absent on create) and fill values. */
diff --git a/admin/src/components/account/AccountContributions.vue b/admin/src/components/account/AccountContributions.vue
new file mode 100644
index 00000000..b2572c7a
--- /dev/null
+++ b/admin/src/components/account/AccountContributions.vue
@@ -0,0 +1,126 @@
+
+
+
+