メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://injectivelabs-mintlify-jp-native-developers-first-half.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Permissionsモジュールは、Injectiveエコシステム内のnamespace、role、permissionの管理を容易にします。本ドキュメントでは、permissions関連データとのやり取りに使用される主要なメッセージ型とその使用方法について説明します。

メッセージ

Permissionsモジュールがエクスポートし、Injectiveチェーンとのやり取りに使用できるメッセージを順番に確認し、例を提供します。

MsgClaimVoucher

このメッセージは、namespace内の特定のアドレスに紐付けられたvoucherをclaimするために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgClaimVoucher } from "@injectivelabs/sdk-ts/core/modules";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";

const injectiveAddress = "inj1...";
const privateKey = "0x...";
const denom = "inj";

const msg = MsgClaimVoucher.fromJSON({
  injectiveAddress,
  denom,
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet,
}).broadcast({
  msgs: msg,
});

console.log(txHash);

MsgCreateNamespace

このメッセージは、permissionとroleを持つ新しいnamespaceを作成するために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";
import { MsgCreateNamespace } from "@injectivelabs/sdk-ts/core/modules";

const injectiveAddress = "inj1...";
const secondAddress = "inj2.....";
const privateKey = "0x...";
const denom = "inj";
const wasmHook = "inj3....";
const mintsPausedValue = false;
const sendsPausedValue = false;
const burnsPausedValue = false;
const role1 = "Everyone";
const permissions1 = 1;

const msg = MsgCreateNamespace.fromJSON({
  injectiveAddress,
  namespace: {
    denom,
    wasmHook,
    mintsPausedValue,
    sendsPausedValue,
    burnsPausedValue,
    rolePermissions: {
      role: role1,
      permissions: permissions1,
    },
    addressRoles: {
      address: injectiveAddress,
      roles: [role1],
    },
  },
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet,
}).broadcast({
  msgs: msg,
});

console.log(txHash);

MsgDeleteNamespace

このメッセージは、既存のnamespaceを削除するために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";
import { MsgDeleteNamespace } from "@injectivelabs/sdk-ts/core/modules";

const injectiveAddress = "inj1...";
const privateKey = "0x...";
const denom = "inj";

const msg = MsgDeleteNamespace.fromJSON({
  injectiveAddress,
  denom,
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet,
}).broadcast({
  msgs: msg,
});

console.log(txHash);

MsgRevokeNamespaceRoles

このメッセージは、namespace内の指定アドレスからroleを取り消すために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";
import { MsgRevokeNamespaceRoles } from "@injectivelabs/sdk-ts/core/modules";

const injectiveAddress = "inj1...";
const privateKey = "0x...";
const denom = "inj";
const roles = ["role1", "role2"];

const msg = MsgRevokeNamespaceRoles.fromJSON({
  injectiveAddress,
  denom,
  addressRolesToRevoke: {
    injectiveAddress,
    roles: roles,
  },
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet,
}).broadcast({
  msgs: msg,
});

console.log(txHash);

MsgUpdateNamespace

このメッセージは、mints、sends、burnsなどのnamespaceのプロパティを更新するために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";
import { MsgUpdateNamespace } from "@injectivelabs/sdk-ts/core/modules";

const injectiveAddress = "inj1..."
const privateKey = "0x...";
const denom = "inj";
const wasmHookValue = "inj2...";
const mintsPausedValue = false;
const sendsPausedValue = false;
const burnsPausedValue = true;

const msg = await new MsgUpdateNamespace.fromJSON({
  injectiveAddress,
  denom,
  wasmHook: {
    newValue: wasmHookValue
  },
  mintsPaused: {
    newValue: mintsPausedValue;
  },
  sendsPaused: {
    newValue: sendsPausedValue;
  },
  burnsPaused: {
    newValue: burnsPausedValue;
  },
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet
}).broadcast({
  msgs: msg
});

console.log(txHash);

MsgUpdateNamespaceRoles

このメッセージは、namespace内のアドレスのroleおよびpermissionを変更するために使用されます。
import { Network } from "@injectivelabs/networks";
import { MsgBroadcasterWithPk } from "@injectivelabs/sdk-ts/core/tx";
import { MsgUpdateNamespaceRoles } from "@injectivelabs/sdk-ts/core/modules";

const injectiveAddress = "inj1...";
const privateKey = "0x...";
const denom = "inj";
const role = "role1";
const permissions = 4;

const msg = MsgUpdateNamespaceRoles.fromJSON({
  injectiveAddress,
  denom,
  rolePermissions: {
    role,
    permissions: permissions,
  },
  addressRoles: {
    injectiveAddress,
    roles: [role],
  },
});

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.Testnet,
}).broadcast({
  msgs: msg,
});

console.log(txHash);
Last modified on May 14, 2026