Paliスマートアカウント
Paliスマートアカウントは、Paliがユーザーのために作成・接続・操作できるコントラクトアカウントです。一般ユーザーには通常のウォレットのように見えます。dappの要求を確認し、passkeyまたはウォレットキーで承認し、Paliがトランザクションを送信します。内部ではモジュール式で、validatorが承認を行い、executorが復元などの機能を追加します。
シンプルな考え方
- 1つのアカウントアドレスが資産を保持し、dappにもそのアドレスが見えます。
- passkey、ECDSA、composite policyで承認できます。
- Guardian recoveryは遅延後に active validator を置き換えられます。
wallet_sendCallsは複数の call を1つの atomic action として実行できます。
技術モデル
PaliSmartAccount は call を実行し、ERC-7579風のモジュールで署名を検証します。PaliSmartAccountFactory は deterministic address を導出してアカウントを deploy します。Paliは内部でERC-4337風の encoding を使い、EIP-1271でcontract signatureを検証します。
2つの役割: validatorが署名し、guardianが復元する
ERC-7579はモジュールの役割を分離しており、Paliはこの分離を意図的に活用しています。
- Validatorは、passkey、ECDSA、composite policyなど、通常のアカウント承認の署名を検証します。
- Executorは、インストール済みモジュールを通じてアカウントの操作を実行できます。Paliのguardianモジュールには設定した閾値と待機時間が必要です。ウォレットの案内付きフローは有効なvalidatorを置き換えますが、オンチェーンモジュールはそのUI操作だけに限定されていません。
したがってguardianは、アカウントに対する遅延付きの権限を持ちます。閾値を満たすguardianが侵害されると、制御や資金が危険になります。現在の所有者は待機中に対応できますが、悪意のある実行より前に保護操作を確定させる必要があります。ガーディアン復旧を参照してください。
Composite署名policy
composite validatorは子validatorをthresholdの下で組み合わせ、1つのアカウントをpolicyエンジンに変えます。
- 1-of-N — 複数のauthenticatorのうちどれか1つで承認できます。各デバイスにpasskeyを置く個人アカウントに便利です。
- t-of-N — 定足数の承認が必要です。共有トレジャリー、デスク、チーム管理アカウントに自然な形です。
- N-of-N — 設定されたすべてのvalidatorの承認が必要です。最大限の保証が必要なアカウント向けです。
現在のPaliは、ローカルで利用可能な組み込みの子validatorの承認を閾値まで集めます。このバージョンでは、入れ子のcompositeや外部・別デバイスからの承認収集はサポートしていません。guardian recoveryは有効なvalidator policyから独立しています。
Validatorの俊敏性とポスト量子への備え
対応設定済みのネットワークでは、Paliはウォレット所有のECDSA、P-256 WebAuthnパスキー、SLH-DSA、複合バリデーターをサポートします。対応するオンチェーンモジュールがデプロイ済みで、必要なローカル鍵や認証情報が利用可能であることが必要です。交換可能なモジュールにより、将来の署名方式も同じアカウントアドレスで導入できます。バリデーターを変更しても、資金、履歴、連携は移動しません。
guardianモジュールは、通常のアドレスのECDSA承認とコントラクトアカウントのERC-1271承認を検証します。Paliは、ローカルの鍵ベースのguardianと、署名可能なデプロイ済みローカルのスマートアカウントguardian(SLH-DSAを含む)を利用できます。ローカルで署名できない外部guardianには外部の承認フローが必要です。
企業・チーム向け
企業はPaliスマートアカウントを単なるpasskey loginではなく、アカウント基盤として扱うべきです。passkeyは低摩擦のonboardingに、ECDSAやcomposite validatorはチームやhardware wallet管理に、guardian recoveryは遅延付きの置き換えに使えます。deploymentとexecutionのためにgas payerにも資金が必要です。
外部ECDSA ownerをdappが要求した場合、Paliは明示的に警告します。そのアドレスは将来のアカウント操作を承認できるためです。
Dappメソッド
const account = await window.ethereum.request({
method: 'wallet_prepareSmartAccount',
params: [{ label: 'Trading account', authenticator: { id: 'p256-webauthn' } }],
});
対応ネットワーク
Paliスマートアカウントは、Paliが参照するアドレスにPali factoryとmodulesが存在する互換EVMチェーンで利用できます。これはPaliが運用するチェーンに限定されません。アクティブなチェーンがcanonical CREATE2 deployerを提供している場合、Paliは不足しているスマートアカウント設定をウォレット内でデプロイできます。Pali Settingsを開き、Advancedに移動し、Smart account setup のDeployボタンを使ってください。
Passkey validatorにはP-256 WebAuthn検証が必要です。多くの新しいEVM環境ではP-256/passkey precompileで提供されていますが、本番利用前にチェーン側のサポートを確認してください。
ユーザーによるコントロール

ユーザーは承認前に、リクエスト元のサイト、アカウントのラベル、要求されたauthenticator、外部ECDSA ownerアドレスを確認できます。Paliが新しいpasskey credentialを必要とする場合は、ブラウザまたはOSがWebAuthnプロンプトを表示します。スマートアカウントがdappに接続される前に、Paliはデプロイ、モジュールのインストール、確認の進行状況を表示します。