スキーマの作成

アテステーションの構造と検証ルールを定義する新しいスキーマを作成します。このinstructionにより、クレデンシャル機関はアテステーションに含まれるべきフィールドとそのフォーマット方法を指定するスキーマを作成できます。

パラメータ

パラメータ説明
payerSignerトランザクションの支払いを行うアカウント
authoritySignerクレデンシャルの権限者
credentialPublicKey | Pdaこのスキーマが関連付けられるクレデンシャルアカウント
schemaPublicKey | Pda作成するスキーマアカウント
systemProgramPublicKey | PdaSystem Programアカウント(デフォルトは'11111111111111111111111111111111')
namestringスキーマの名前
descriptionstringスキーマの目的に関する詳細な説明
layoutReadonlyUint8Arrayスキーマのバイナリレイアウト定義
fieldNamesstring[]スキーマ内のフィールドの名前

戻り値

トランザクションの構築と送信に使用できるTransactionBuilderを返します。

import { getCreateSchemaInstruction } from "sas-lib";
const transaction = getCreateSchemaInstruction({
payer: payerSigner,
authority: authoritySigner,
credential: credentialPublicKey,
schema: schemaPublicKey,
systemProgram: systemProgramPublicKey,
name: "Identity Verification",
description: "Schema for verifying user identity information",
layout: schemaLayoutBytes,
fieldNames: ["fullName", "dateOfBirth", "nationality"]
});
// Send the transaction
await transaction.sendAndConfirm();

重要な注意事項

  • payerはトランザクションの署名者である必要があります
  • authorityはトランザクションの署名者であり、かつクレデンシャルの権限者である必要があります
  • スキーマアカウントは書き込み可能である必要があります
  • クレデンシャルアカウントは読み取り可能である必要があります
  • この操作には、rent免除計算のためにSystem Programが必要です
  • スキーマ名は説明的で、クレデンシャル内で一意である必要があります
  • 説明には、スキーマの目的と使用方法に関する明確な情報を記載する必要があります
  • レイアウトは、アテステーションデータの構造を定義する有効なバイナリ形式である必要があります
  • fieldNames配列は、レイアウトで定義されたフィールドと一致する必要があります
  • スキーマは必要に応じて後で一時停止できます
  • スキーマはデータ構造の進化をサポートするためにバージョン管理できます
  • このスキーマの下で作成されるすべてのアテステーションは、その構造に準拠する必要があります

Is this page helpful?

目次

ページを編集

管理運営

© 2026 Solana Foundation.
無断転載を禁じます。
つながろう