Skip to main content
Glama

w3_key_create

Generate and export a new ed25519 key pair for secure cryptographic operations. Ideal for managing identities and access in the MCP IPFS network.

Instructions

Generates and prints a new ed25519 key pair. Does not automatically use it for the agent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jsonNoExport the new key pair as dag-json (default: false).

Implementation Reference

  • Handler function that validates input using the schema, executes the 'w3 key create' command (with optional --json flag), parses the output if JSON, and returns structured content with the new key pair data or raw output.
    const handleW3KeyCreate: ToolHandler = async (args) => {
      const parsed = Schemas.W3KeyCreateArgsSchema.safeParse(args);
      if (!parsed.success)
        throw new Error(
          `Invalid arguments for w3_key_create: ${parsed.error.message}`
        );
      const { json } = parsed.data;
      const command = json ? "key create --json" : "key create";
      const { stdout } = await runW3Command(command);
      if (json) {
        try {
          const keyData = JSON.parse(stdout);
          return {
            content: [
              {
                type: "text",
                text: JSON.stringify({
                  message: "New key pair created (JSON format).",
                  keyData,
                }),
              },
            ],
          };
        } catch (e) {
          logger.warn("Failed to parse key create JSON, returning raw.");
          return {
            content: [
              {
                type: "text",
                text: JSON.stringify({
                  message: "New key pair created (raw output).",
                  output: stdout.trim(),
                }),
              },
            ],
          };
        }
      } else {
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify({
                message: "New key pair created (raw output).",
                output: stdout.trim(),
              }),
            },
          ],
        };
      }
    };
  • Zod schema defining the input arguments for the w3_key_create tool, including an optional 'json' boolean flag.
    export const W3KeyCreateArgsSchema = z
      .object({
        json: z
          .boolean()
          .optional()
          .default(false)
          .describe("Export the new key pair as dag-json (default: false)."),
      })
      .describe(
        "Generates and prints a new ed25519 key pair. Does not automatically use it for the agent."
      );
  • The exported toolHandlers object registers 'w3_key_create' to the handleW3KeyCreate function.
    export const toolHandlers: Record<string, ToolHandler> = {
      w3_login: handleW3Login,
      w3_space_ls: handleW3SpaceLs,
      w3_space_use: handleW3SpaceUse,
      w3_space_create: handleW3SpaceCreate,
      w3_up: handleW3Up,
      w3_ls: handleW3Ls,
      w3_rm: handleW3Rm,
      w3_open: handleW3Open,
      w3_space_info: handleW3SpaceInfo,
      w3_space_add: handleW3SpaceAdd,
      w3_delegation_create: handleW3DelegationCreate,
      w3_delegation_ls: handleW3DelegationLs,
      w3_delegation_revoke: handleW3DelegationRevoke,
      w3_proof_add: handleW3ProofAdd,
      w3_proof_ls: handleW3ProofLs,
      w3_key_create: handleW3KeyCreate,
      w3_bridge_generate_tokens: handleW3BridgeGenerateTokens,
      w3_can_blob_add: handleW3CanBlobAdd,
      w3_can_blob_ls: handleW3CanBlobLs,
      w3_can_blob_rm: handleW3CanBlobRm,
      w3_can_index_add: handleW3CanIndexAdd,
      w3_can_upload_add: handleW3CanUploadAdd,
      w3_can_upload_ls: handleW3CanUploadLs,
      w3_can_upload_rm: handleW3CanUploadRm,
      w3_plan_get: handleW3PlanGet,
      w3_account_ls: handleW3AccountLs,
      w3_space_provision: handleW3SpaceProvision,
      w3_coupon_create: handleW3CouponCreate,
      w3_usage_report: handleW3UsageReport,
      w3_can_access_claim: handleW3CanAccessClaim,
      w3_can_store_add: handleW3CanStoreAdd,
      w3_can_store_ls: handleW3CanStoreLs,
      w3_can_store_rm: handleW3CanStoreRm,
      w3_can_filecoin_info: handleW3CanFilecoinInfo,
      w3_reset: handleW3Reset,
    };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexbakers/mcp-ipfs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server