motoko-dot-notation-migration

Installation
SKILL.md

Motoko dot notation migration

Purpose

Convert Motoko function calls from the old Module.func(self, ...) style to the new self.func(...) dot notation, for all functions in the core package whose first parameter is named self.

This skill was created from a successful migration of the motoko-bitcoin project. It contains the complete function catalog for core 2.2.0, a battle-tested Python conversion script, and all the critical pitfalls that must be handled.

When to Use

  • When migrating a Motoko project from base to core, or upgrading core versions
  • When the user asks to convert function calls to dot notation
  • When the user asks to modernize Motoko call syntax

Background

In Motoko's core package (successor to base), many module functions declare their first parameter as self. These functions support dot notation: instead of writing Module.func(self, arg2, arg3), you can write self.func(arg2, arg3).

Only functions whose first parameter is literally named self support this. Factory functions like Array.tabulate, Array.fromVarArray, Blob.fromArray, etc. do NOT have self as first parameter and must NOT be converted.

Related skills
Installs
31
First Seen
Mar 27, 2026