From 48555411de2f7c4134f796f9d27f5ad490391782 Mon Sep 17 00:00:00 2001 From: Tony Boyle Date: Fri, 10 Apr 2026 22:30:00 +0100 Subject: [PATCH 1/4] Add agent skill markdown docs --- public/agents/create-agent-token.md | 90 +++++++++++ public/agents/index.md | 64 ++++++++ public/agents/mint-agent.md | 88 +++++++++++ public/agents/register-agent.md | 86 +++++++++++ public/agents/run-agent.md | 61 ++++++++ public/agents/run-an-agent.md | 69 +++++++++ public/agents/skill.md | 31 ++++ public/agents/skill/how-it-works.md | 42 +++++ public/agents/skill/installation.md | 51 +++++++ .../agents/skill/programs-and-operations.md | 55 +++++++ public/agents/what-is-an-agent.md | 33 ++++ public/smart-contracts/core/burn.md | 47 ++++++ .../core/collections/create.md | 65 ++++++++ .../smart-contracts/core/collections/fetch.md | 45 ++++++ public/smart-contracts/core/create-asset.md | 144 ++++++++++++++++++ .../core/execute-asset-signing.md | 64 ++++++++ public/smart-contracts/core/fetch.md | 62 ++++++++ public/smart-contracts/core/plugins.md | 75 +++++++++ public/smart-contracts/core/transfer.md | 45 ++++++ public/smart-contracts/core/update.md | 49 ++++++ .../genesis/bonding-curve-launch.md | 63 ++++++++ .../genesis/bonding-curve-swaps.md | 57 +++++++ .../smart-contracts/genesis/bonding-curve.md | 52 +++++++ .../genesis/getting-started.md | 58 +++++++ public/smart-contracts/genesis/index.md | 57 +++++++ .../genesis/integration-apis/create-launch.md | 42 +++++ .../genesis/integration-apis/register.md | 42 +++++ public/smart-contracts/genesis/launch-pool.md | 61 ++++++++ public/smart-contracts/genesis/presale.md | 60 ++++++++ .../smart-contracts/genesis/sdk/api-client.md | 41 +++++ src/components/Layout.jsx | 2 +- src/components/SkillBadge.jsx | 94 +++++++----- src/pages/en/agents/create-agent-token.md | 1 + src/pages/en/agents/index.md | 1 + src/pages/en/agents/mint-agent.md | 1 + src/pages/en/agents/register-agent.md | 1 + src/pages/en/agents/run-agent.md | 1 + src/pages/en/agents/run-an-agent.md | 1 + src/pages/en/agents/skill/how-it-works.md | 1 + src/pages/en/agents/skill/index.md | 1 + src/pages/en/agents/skill/installation.md | 1 + .../agents/skill/programs-and-operations.md | 1 + src/pages/en/agents/what-is-an-agent.md | 1 + src/pages/en/smart-contracts/core/burn.md | 1 + .../core/collections/create.md | 1 + .../smart-contracts/core/collections/fetch.md | 1 + .../en/smart-contracts/core/create-asset.md | 1 + .../core/execute-asset-signing.md | 1 + src/pages/en/smart-contracts/core/fetch.md | 1 + .../en/smart-contracts/core/plugins/index.md | 1 + src/pages/en/smart-contracts/core/transfer.md | 1 + src/pages/en/smart-contracts/core/update.md | 1 + .../genesis/bonding-curve-launch.md | 1 + .../genesis/bonding-curve-swaps.md | 1 + .../smart-contracts/genesis/bonding-curve.md | 1 + .../genesis/getting-started.md | 1 + src/pages/en/smart-contracts/genesis/index.md | 1 + .../genesis/integration-apis/create-launch.md | 1 + .../genesis/integration-apis/register.md | 1 + .../en/smart-contracts/genesis/launch-pool.md | 1 + .../en/smart-contracts/genesis/presale.md | 1 + .../smart-contracts/genesis/sdk/api-client.md | 1 + src/shared/usePage.js | 2 +- 63 files changed, 1887 insertions(+), 40 deletions(-) create mode 100644 public/agents/create-agent-token.md create mode 100644 public/agents/index.md create mode 100644 public/agents/mint-agent.md create mode 100644 public/agents/register-agent.md create mode 100644 public/agents/run-agent.md create mode 100644 public/agents/run-an-agent.md create mode 100644 public/agents/skill.md create mode 100644 public/agents/skill/how-it-works.md create mode 100644 public/agents/skill/installation.md create mode 100644 public/agents/skill/programs-and-operations.md create mode 100644 public/agents/what-is-an-agent.md create mode 100644 public/smart-contracts/core/burn.md create mode 100644 public/smart-contracts/core/collections/create.md create mode 100644 public/smart-contracts/core/collections/fetch.md create mode 100644 public/smart-contracts/core/create-asset.md create mode 100644 public/smart-contracts/core/execute-asset-signing.md create mode 100644 public/smart-contracts/core/fetch.md create mode 100644 public/smart-contracts/core/plugins.md create mode 100644 public/smart-contracts/core/transfer.md create mode 100644 public/smart-contracts/core/update.md create mode 100644 public/smart-contracts/genesis/bonding-curve-launch.md create mode 100644 public/smart-contracts/genesis/bonding-curve-swaps.md create mode 100644 public/smart-contracts/genesis/bonding-curve.md create mode 100644 public/smart-contracts/genesis/getting-started.md create mode 100644 public/smart-contracts/genesis/index.md create mode 100644 public/smart-contracts/genesis/integration-apis/create-launch.md create mode 100644 public/smart-contracts/genesis/integration-apis/register.md create mode 100644 public/smart-contracts/genesis/launch-pool.md create mode 100644 public/smart-contracts/genesis/presale.md create mode 100644 public/smart-contracts/genesis/sdk/api-client.md diff --git a/public/agents/create-agent-token.md b/public/agents/create-agent-token.md new file mode 100644 index 00000000..b6f186bb --- /dev/null +++ b/public/agents/create-agent-token.md @@ -0,0 +1,90 @@ +# Metaplex Agents: Create Agent Token + +Use this agent page when the user wants to launch a Genesis token on behalf of a registered Metaplex agent. + +Human page: https://metaplex.com/docs/agents/create-agent-token + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user wants a token linked to an agent identity. +- The user wants creator fees routed to the agent Asset Signer PDA. +- The user wants to use Genesis `createAndRegisterLaunch()` with the `agent` field. + +## SDK/API Function + +Use `createAndRegisterLaunch()` from `@metaplex-foundation/genesis` with: + +```ts +agent: { + mint: agentAssetAddress, + setToken: true, +} +``` + +Notes: + +- `setToken: true` is irreversible. +- Creator fees route to the agent's Asset Signer PDA unless explicitly overridden. +- The first buy buyer defaults to the agent PDA when `agent` is provided. + +For an existing Genesis account, use `setAgentTokenV1()` from `@metaplex-foundation/mpl-agent-registry`. + +```ts +import { setAgentTokenV1 } from '@metaplex-foundation/mpl-agent-registry' + +await setAgentTokenV1(umi, { + asset: agentAssetAddress, + genesisAccount, + authority: assetSignerPda, +}).sendAndConfirm(umi) +``` + +When using the SDK directly, `authority` must be the Asset Signer PDA and should be provided explicitly. The SDK can derive the agent identity if omitted. The agent token can only be set once; repeated attempts fail with `AgentTokenAlreadySet`. + +## CLI Quick Reference + +```bash +# Recommended one-step launch and link. +mplx genesis launch create --launchType bonding-curve \ + --name \ + --symbol \ + --image \ + --agentMint \ + --agentSetToken + +# Two-step link after a launch already exists. +mplx agents set-agent-token +``` + +For the two-step CLI link, switch the CLI wallet to asset-signer mode for the agent asset before running the command: + +```bash +mplx config wallets add --name my-agent --type asset-signer --asset +mplx config wallets set my-agent +mplx agents set-agent-token +``` + +Full CLI docs: /docs/dev-tools/cli/agents/set-agent-token + +## Notes + +- `--agentSetToken` is irreversible. +- If a launch immediately after registration reports that the agent is not owned by the connected wallet, verify with `mplx agents fetch ` and wait about 30 seconds before retrying. RPC propagation can lag behind a successful on-chain registration. + +## Related Pages + +- Register an agent first: /docs/agents/register-agent.md +- Genesis bonding curve launch: /docs/smart-contracts/genesis/bonding-curve-launch.md +- Agent token CLI docs: /docs/dev-tools/cli/agents/set-agent-token diff --git a/public/agents/index.md b/public/agents/index.md new file mode 100644 index 00000000..309174e3 --- /dev/null +++ b/public/agents/index.md @@ -0,0 +1,64 @@ +# Metaplex Agent Kit + +Use this agent page when the user asks about creating, registering, reading, running, or tokenizing agents on Solana. + +Human page: https://metaplex.com/docs/agents + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## Route To Task Pages + +- What is an Agent: /docs/agents/what-is-an-agent.md +- Mint an Agent: /docs/agents/mint-agent.md +- Register an Agent on an existing Core asset: /docs/agents/register-agent.md +- Read Agent Data: /docs/agents/run-agent.md +- Run an Agent with executive delegation: /docs/agents/run-an-agent.md +- Create an Agent Token: /docs/agents/create-agent-token.md +- Agent Skill overview: /docs/agents/skill.md + +## SDK Setup + +Install `@metaplex-foundation/mpl-agent-registry`. The package ships as CommonJS; in ESM files import the default package and destructure exports if named imports do not work. + +```ts +import { createUmi } from '@metaplex-foundation/umi-bundle-defaults' +import { mplCore } from '@metaplex-foundation/mpl-core' +import pkg from '@metaplex-foundation/mpl-agent-registry' + +const { mplAgentIdentity, mplAgentTools } = pkg + +const umi = createUmi('https://api.mainnet-beta.solana.com') + .use(mplCore()) + .use(mplAgentIdentity()) + .use(mplAgentTools()) +``` + +## CLI Quick Reference + +```bash +mplx agents register --name --description --image +mplx agents fetch +mplx agents set-agent-token +mplx agents executive register +mplx agents executive delegate --executive +mplx agents executive revoke +``` + +Full CLI docs: /docs/dev-tools/cli/agents + +## Reference Notes + +- Agent registration service types include `web`, `A2A`, `MCP`, `OASF`, `DID`, `email`, and custom service names. +- Supported trust models include `reputation`, `crypto-economic`, and `tee-attestation`. +- The Agent Identity program ID is `1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p`. +- The Agent Tools program ID is `TLREGni9ZEyGC3vnPZtqUh95xQ8oPqJSvNjvB7FGK8S`. diff --git a/public/agents/mint-agent.md b/public/agents/mint-agent.md new file mode 100644 index 00000000..7e840d45 --- /dev/null +++ b/public/agents/mint-agent.md @@ -0,0 +1,88 @@ +# Metaplex Agents: Mint Agent + +Use this agent page when the user wants to create a new agent in one API-backed flow. + +Human page: https://metaplex.com/docs/agents/mint-agent + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user wants to create a new Core asset and register the agent identity in one transaction. +- The user wants to use the Metaplex hosted Agent API. +- The user does not already have a Core asset to register. + +## SDK/API Functions + +- `mintAndSubmitAgent()` calls the Metaplex API, signs the returned transaction with Umi, and submits it. +- `mintAgent()` returns the unsigned transaction for manual signing or custom transaction sending. +- Pass API config as the second argument when needed: `{ baseUrl, fetch }`. +- Use `isAgentApiError`, `isAgentApiNetworkError`, and `isAgentValidationError` to classify API or validation failures. + +## Required Inputs + +- `wallet`: wallet public key. +- `name`: agent name. +- `uri`: public Core asset metadata JSON URI. +- `agentMetadata`: off-chain agent metadata stored by the Metaplex API. +- `network`: optional network such as `solana-mainnet` or `solana-devnet`. + +## SDK Example + +```ts +import pkg from '@metaplex-foundation/mpl-agent-registry' + +const { mintAndSubmitAgent } = pkg + +const { signature, assetAddress } = await mintAndSubmitAgent( + umi, + {}, + { + wallet: umi.identity.publicKey, + name: 'Example Agent', + uri: 'https://example.com/core-asset.json', + agentMetadata: { + type: 'AI Agent', + name: 'Example Agent', + description: 'Agent registration metadata', + image: 'https://example.com/agent.png', + services: [ + { type: 'MCP', endpoint: 'https://example.com/mcp' }, + ], + supportedTrust: ['reputation'], + }, + network: 'solana-devnet', + } +) +``` + +Supported API networks: `solana-mainnet`, `solana-devnet`, `localnet`, `eclipse-mainnet`, `sonic-mainnet`, `sonic-devnet`, `fogo-mainnet`, and `fogo-testnet`. + +## CLI Quick Reference + +```bash +mplx agents register \ + --name \ + --description \ + --image \ + --services '[{"name":"MCP","endpoint":"https://example.com/mcp"}]' \ + --supported-trust '["reputation","crypto-economic"]' +``` + +Full CLI docs: /docs/dev-tools/cli/agents/register + +## Related Pages + +- Register an existing Core asset: /docs/agents/register-agent.md +- Read agent data: /docs/agents/run-agent.md +- Create an agent token: /docs/agents/create-agent-token.md diff --git a/public/agents/register-agent.md b/public/agents/register-agent.md new file mode 100644 index 00000000..39b83b41 --- /dev/null +++ b/public/agents/register-agent.md @@ -0,0 +1,86 @@ +# Metaplex Agents: Register Agent + +Use this agent page when the user wants to attach an agent identity to an existing MPL Core asset. + +Human page: https://metaplex.com/docs/agents/register-agent + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user already has an MPL Core asset and wants to bind an agent identity to it. +- The user wants the `registerIdentityV1` instruction. +- The user needs to provide an ERC-8004-style registration document URI. + +## SDK Function + +```ts +import { registerIdentityV1 } from '@metaplex-foundation/mpl-agent-registry' + +await registerIdentityV1(umi, { + asset: assetPublicKey, + collection: collectionPublicKey, + agentRegistrationUri: 'https://example.com/agent-registration.json', +}).sendAndConfirm(umi) +``` + +Registration is one-time per asset. Use this path when a Core asset already exists; use `/docs/agents/mint-agent.md` when the user wants the API to create the Core asset and agent identity together. + +## Registration Document + +The registration document is an ERC-8004-style JSON document. Required fields are `type`, `name`, `description`, and `image`. Optional fields include `services`, `active`, `registrations`, and `supportedTrust`. + +Common service types are `web`, `A2A`, `MCP`, `OASF`, `DID`, `email`, and custom service names. Supported trust models include `reputation`, `crypto-economic`, and `tee-attestation`. + +```json +{ + "type": "AI Agent", + "name": "Example Agent", + "description": "Autonomous agent description", + "image": "https://example.com/agent.png", + "services": [ + { "type": "MCP", "endpoint": "https://example.com/mcp" } + ], + "supportedTrust": ["reputation", "crypto-economic"] +} +``` + +## CLI Quick Reference + +```bash +# Default API mode creates a Core asset and registers identity. +mplx agents register --name --description --image + +# Direct instruction mode on an existing Core asset. +mplx agents register --use-ix --from-file ./agent-doc.json + +# Direct instruction mode with a new Core asset. +mplx agents register --new --use-ix --name --description --image + +# Interactive mode. +mplx agents register --new --wizard +``` + +Full CLI docs: /docs/dev-tools/cli/agents/register + +## Notes + +- CLI `--wizard`, `--from-file`, and inline `--name` registration modes are mutually exclusive. +- In API mode, the CLI detects the network from the configured RPC endpoint. +- If a follow-up Genesis API call says the agent is not owned by the connected wallet immediately after registration, the on-chain registration may still have succeeded. Check `mplx agents fetch ` and wait about 30 seconds before retrying the launch. + +## Related Pages + +- Mint an agent in one API flow: /docs/agents/mint-agent.md +- Read agent data: /docs/agents/run-agent.md +- Create a Core asset first: /docs/smart-contracts/core/create-asset.md diff --git a/public/agents/run-agent.md b/public/agents/run-agent.md new file mode 100644 index 00000000..f631a777 --- /dev/null +++ b/public/agents/run-agent.md @@ -0,0 +1,61 @@ +# Metaplex Agents: Read Agent Data + +Use this agent page when the user wants to verify an agent registration or read agent identity data. + +Human page: https://metaplex.com/docs/agents/run-agent + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## SDK Functions + +- `findAgentIdentityV2Pda()` derives the current agent identity PDA from the asset address. +- `safeFetchAgentIdentityV2()` returns the identity account or `null` if not registered. +- `fetchAgentIdentityV1FromSeeds()` fetches directly from the asset seed. +- `fetchAsset()` reads the Core asset and attached `AgentIdentity` plugin. +- `findAssetSignerPda()` derives the agent wallet PDA. + +V1 fetchers still work for legacy identity accounts. Prefer V2 helpers for new reads, then fall back to V1 only when working with older data. + +```ts +import { fetchAsset } from '@metaplex-foundation/mpl-core' +import { + findAgentIdentityV2Pda, + safeFetchAgentIdentityV2, +} from '@metaplex-foundation/mpl-agent-registry' + +const [agentIdentity] = findAgentIdentityV2Pda(umi, { asset }) +const identity = await safeFetchAgentIdentityV2(umi, agentIdentity) +const assetData = await fetchAsset(umi, asset) +const plugin = assetData.agentIdentities?.[0] +``` + +## CLI Quick Reference + +```bash +mplx agents fetch +mplx agents fetch --json +``` + +Full CLI docs: /docs/dev-tools/cli/agents/fetch + +## PDA Reference + +- `AgentIdentityV2`: seeds `["agent_identity", ]`, account size 104 bytes. +- `AgentIdentityV1`: same seeds, legacy account size 40 bytes. +- Asset Signer PDA: use `findAssetSignerPda()` when deriving the agent wallet. + +## Related Pages + +- Register an agent: /docs/agents/register-agent.md +- Run an agent with executive delegation: /docs/agents/run-an-agent.md +- Core Execute and Asset Signer: /docs/smart-contracts/core/execute-asset-signing.md diff --git a/public/agents/run-an-agent.md b/public/agents/run-an-agent.md new file mode 100644 index 00000000..f602cd1f --- /dev/null +++ b/public/agents/run-an-agent.md @@ -0,0 +1,69 @@ +# Metaplex Agents: Run An Agent + +Use this agent page when the user wants to set up executive delegation so an off-chain operator can run an agent. + +Human page: https://metaplex.com/docs/agents/run-an-agent + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## SDK Functions + +- `registerExecutiveV1()` creates the executive profile for a wallet. +- `delegateExecutionV1()` delegates an agent asset to an executive profile. +- `revokeExecutionV1()` revokes a delegated execution relationship. +- `findExecutiveProfileV1Pda()` derives the executive profile PDA. +- `findExecutionDelegateRecordV1Pda()` derives the delegation record PDA. + +```ts +import { + delegateExecutionV1, + registerExecutiveV1, + revokeExecutionV1, +} from '@metaplex-foundation/mpl-agent-registry' + +await registerExecutiveV1(umi, {}).sendAndConfirm(umi) + +await delegateExecutionV1(umi, { + asset, + executive: executivePublicKey, +}).sendAndConfirm(umi) + +await revokeExecutionV1(umi, { + asset, + executive: executivePublicKey, +}).sendAndConfirm(umi) +``` + +## CLI Quick Reference + +```bash +mplx agents executive register +mplx agents executive delegate --executive +mplx agents executive revoke --executive +mplx agents executive revoke +``` + +Full CLI docs: /docs/dev-tools/cli/agents/executive + +## Notes + +- The executive must register a profile before an agent can be delegated to it. +- Only the asset owner can delegate execution. +- Either the owner or executive can revoke a delegation. +- `ExecutiveProfileV1` PDA seeds: `["executive_profile", ]`. +- `ExecutionDelegateRecordV1` PDA seeds: `["execution_delegate_record", , ]`. + +## Related Pages + +- Read agent data first: /docs/agents/run-agent.md +- Core Execute and Asset Signer: /docs/smart-contracts/core/execute-asset-signing.md diff --git a/public/agents/skill.md b/public/agents/skill.md new file mode 100644 index 00000000..b3f345aa --- /dev/null +++ b/public/agents/skill.md @@ -0,0 +1,31 @@ +# Metaplex Skill + +Use this agent page when the user asks how to give an AI coding agent Metaplex protocol knowledge. + +Human page: https://metaplex.com/docs/agents/skill + +## Agent Routing + +- Use this page for agent skill installation, agent documentation architecture, and Metaplex Skill concepts. +- For protocol implementation tasks, route to the product-specific agent pages, such as /docs/smart-contracts/core/create-asset.md or /docs/smart-contracts/genesis/launch-pool.md. +- For terminal operations, use CLI quick references on the relevant product page. + +## Environment Prerequisites + +- Installing a Skill requires an AI coding agent/runtime that supports Agent Skills or can read local instruction files. +- `npx skills add metaplex-foundation/skill` requires Node.js and npm/npx. +- If the user only wants to read docs, do not assume local skill installation is available. + +## Install + +```bash +npx skills add metaplex-foundation/skill +``` + +Manual installation copies the Skill files from https://github.com/metaplex-foundation/skill into the agent's skill directory. + +## Related Pages + +- Skill installation: /docs/agents/skill/installation.md +- How it works: /docs/agents/skill/how-it-works.md +- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/how-it-works.md b/public/agents/skill/how-it-works.md new file mode 100644 index 00000000..2a52f058 --- /dev/null +++ b/public/agents/skill/how-it-works.md @@ -0,0 +1,42 @@ +# Metaplex Skill: How It Works + +Use this agent page when the user asks how the Metaplex Skill routes AI agents to the right references. + +Human page: https://metaplex.com/docs/agents/skill/how-it-works + +## Agent Routing + +- Read `SKILL.md` first as the lightweight router. +- Load only the reference files needed for the current task. +- For Agent Registry tasks, use `cli-agent.md` for terminal workflows and `sdk-agent.md` for Umi SDK workflows. +- For Genesis token launch tasks, use `cli-genesis.md` or `sdk-genesis.md`. +- For Core NFT and Asset Signer tasks, use `cli-core.md` or `sdk-core.md`. + +## Architecture + +- `SKILL.md`: high-level tool selection and task router. +- CLI references: command syntax, setup expectations, operational notes. +- SDK references: package setup, Umi plugins, function names, account/PDA details, error helpers. +- Concepts references: shared account structures, PDAs, program IDs, and metadata JSON formats. + +## Agent Registry Reference Map + +- CLI agent identity, delegation, revocation, and token linking: `references/cli-agent.md`. +- SDK agent identity, minting, reading, delegation, and token linking: `references/sdk-agent.md`. +- Core asset creation and Asset Signer execution: `references/cli-core.md` or `references/sdk-core.md`. +- Agent token launch and bonding curve integration: `references/cli-genesis.md` or `references/sdk-genesis.md`. + +## Progressive Disclosure Rule + +Do not load every reference up front. Select the smallest useful set: + +- Terminal one-off: CLI setup reference plus the relevant program CLI reference. +- App/backend/script: Umi setup reference plus the relevant program SDK reference. +- Metadata question: metadata reference plus the relevant program reference. +- Account/PDA question: concepts reference plus the relevant program reference. + +## Related Pages + +- Skill overview: /docs/agents/skill.md +- Installation: /docs/agents/skill/installation.md +- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/installation.md b/public/agents/skill/installation.md new file mode 100644 index 00000000..125c3a76 --- /dev/null +++ b/public/agents/skill/installation.md @@ -0,0 +1,51 @@ +# Metaplex Skill: Installation + +Use this agent page when the user wants to install the Metaplex Skill in an AI coding agent. + +Human page: https://metaplex.com/docs/agents/skill/installation + +## Agent Routing + +- Use the one-command install when the user has Node.js and npm/npx available. +- Use manual installation only when the target agent does not support the installer or the user asks for manual setup. +- If the user asks for protocol implementation help after installing, route to the product-specific `.md` page. + +## Install + +```bash +npx skills add metaplex-foundation/skill +``` + +This requires Node.js and npm/npx. + +## Manual Claude Code Install + +Project-scoped: + +```bash +mkdir -p .claude/skills/metaplex +``` + +Global: + +```bash +mkdir -p ~/.claude/skills/metaplex +``` + +Then copy the contents of `skills/metaplex/` from https://github.com/metaplex-foundation/skill into the chosen `metaplex` skill directory. + +## Verify + +Ask the agent for a concrete Metaplex task, such as: + +- Launch a token with Genesis. +- Create a Core NFT collection on devnet. +- Mint a compressed NFT to a Merkle tree. + +If the Skill is loaded, the agent should route to the relevant CLI or SDK reference instead of guessing flags or APIs. + +## Related Pages + +- Skill overview: /docs/agents/skill.md +- How it works: /docs/agents/skill/how-it-works.md +- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/programs-and-operations.md b/public/agents/skill/programs-and-operations.md new file mode 100644 index 00000000..5b924f2a --- /dev/null +++ b/public/agents/skill/programs-and-operations.md @@ -0,0 +1,55 @@ +# Metaplex Skill: Programs And Operations + +Use this agent page when the user asks which Metaplex program, CLI command group, or SDK package to use for a task. + +Human page: https://metaplex.com/docs/agents/skill/programs-and-operations + +## Tool Preference + +- Prefer SDK/API when the user is building an app, backend, automation, or reusable integration. +- Prefer CLI when the user wants a terminal command, manual setup, debugging, or one-off verification. +- For coding agents such as OpenClaw, use the same preference: SDK/API for code generation, CLI for operational tasks. + +## Programs + +- Agent Registry: on-chain agent identity, agent wallets, executive delegation, and Genesis token linking. +- Genesis: token launch pools, bonding curves, first buy, creator fees, swaps, and Raydium graduation. +- Core: modern NFTs and collections with plugins, lifecycle hooks, and Asset Signer execution. +- Token Metadata: legacy NFTs, pNFTs, editions, and fungible token metadata. +- Bubblegum: compressed NFTs using Merkle trees and DAS-enabled RPC. +- Candy Machine: NFT drop setup and minting guards. + +## Agent Registry + +- CLI group: `mplx agents`. +- SDK package: `@metaplex-foundation/mpl-agent-registry`. +- Main tasks: `register`, `fetch`, `executive register`, `executive delegate`, `executive revoke`, `set-agent-token`. +- SDK functions include `mintAndSubmitAgent`, `mintAgent`, `registerIdentityV1`, `safeFetchAgentIdentityV2`, `setAgentTokenV1`, `registerExecutiveV1`, `delegateExecutionV1`, and `revokeExecutionV1`. + +## Genesis + +- CLI group: `mplx genesis`. +- SDK package: `@metaplex-foundation/genesis`. +- Use for launchpool or bonding curve token launches. +- Use `createAndRegisterLaunch()` for app/backend integrations. +- Use `mplx genesis launch create --agentMint --agentSetToken` when launching and linking an agent token from the CLI. + +## Core + +- CLI group: `mplx core`. +- SDK package: `@metaplex-foundation/mpl-core`. +- Use for Core asset and collection creation, update, transfer, burn, plugins, and Asset Signer execution. +- Agent Registry builds on Core because each agent is a Core asset with an Asset Signer PDA. + +## Notes + +- Bubblegum compressed NFT reads require a DAS-enabled RPC endpoint. +- Candy Machine CLI handles setup/configuration/item insertion; minting requires the SDK. +- Kit SDK support is limited to Token Metadata. +- Setting an agent token is irreversible and requires asset-signer authority for the agent asset. + +## Related Pages + +- Agent Registry overview: /docs/agents/index.md +- Genesis overview: /docs/smart-contracts/genesis/index.md +- Core create asset: /docs/smart-contracts/core/create-asset.md diff --git a/public/agents/what-is-an-agent.md b/public/agents/what-is-an-agent.md new file mode 100644 index 00000000..06472e72 --- /dev/null +++ b/public/agents/what-is-an-agent.md @@ -0,0 +1,33 @@ +# Metaplex Agents: What Is An Agent + +Use this agent page when the user asks for the conceptual model of Metaplex agents. + +Human page: https://metaplex.com/docs/agents/what-is-an-agent + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## Core Concepts + +- A Metaplex agent is an MPL Core asset with an on-chain agent identity. +- The agent identity is a PDA record and `AgentIdentity` plugin attached to the Core asset. +- The agent wallet is the Core asset's Asset Signer PDA. +- Since there is no private key for the Asset Signer PDA, outgoing actions use Core Execute through delegated execution. +- An executive is an off-chain operator wallet authorized to execute on behalf of the agent. + +## Route To Task Pages + +- Mint a new agent with API flow: /docs/agents/mint-agent.md +- Register an existing Core asset as an agent: /docs/agents/register-agent.md +- Read agent identity data: /docs/agents/run-agent.md +- Delegate execution: /docs/agents/run-an-agent.md +- Create an agent token: /docs/agents/create-agent-token.md diff --git a/public/smart-contracts/core/burn.md b/public/smart-contracts/core/burn.md new file mode 100644 index 00000000..7e9ed258 --- /dev/null +++ b/public/smart-contracts/core/burn.md @@ -0,0 +1,47 @@ +# Metaplex Core: Burn Asset + +Use this agent page when the user wants to burn, destroy, or remove a Core Asset. + +Human page: https://metaplex.com/docs/smart-contracts/core/burn + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to burn a Core Asset. +- The user asks for the CLI command to burn one Core Asset. +- The user asks how to burn assets from a list. + +## SDK Function + +Use `burn(umi, { asset })` for SDK burns. Burning is permanent. + +## CLI Commands + +```bash +mplx core asset burn +mplx core asset burn --collection +mplx core asset burn --list +``` + +Notes: + +- Burning is irreversible. +- Use `--collection ` when collection context is required. +- Use `--list ` for a list-based burn flow. +- Only the owner or an authorized Burn Delegate can burn the asset. + +## Related Pages + +- Fetch before burn: /docs/smart-contracts/core/fetch.md +- Burn Delegate plugin: /docs/smart-contracts/core/plugins/burn-delegate diff --git a/public/smart-contracts/core/collections/create.md b/public/smart-contracts/core/collections/create.md new file mode 100644 index 00000000..7e3d82d2 --- /dev/null +++ b/public/smart-contracts/core/collections/create.md @@ -0,0 +1,65 @@ +# Metaplex Core: Create Collection + +Use this agent page when the user wants to create a Core Collection. + +Human page: https://metaplex.com/docs/smart-contracts/core/collections/create + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to create a Core Collection. +- The user asks how to create a Collection with plugins or royalties. +- The user wants the CLI command to create a Collection. + +## SDK Function + +Use `createCollection(umi, { collection, name, uri })`. Use a fresh signer for the collection address. + +## CLI Quick Reference + +```bash +mplx core collection create --name --uri +mplx core collection create --name --uri --pluginsFile +mplx core collection template +``` + +Notes: + +- `--pluginsFile ` attaches plugins during Collection creation. +- `mplx core collection template` generates template files. +- Full CLI docs: /docs/dev-tools/cli/core/create-collection + +## Royalties Plugin Quick Reference + +```json +[{ + "type": "Royalties", + "basisPoints": 500, + "creators": [{"address": "", "percentage": 100}], + "ruleSet": {"type": "None"} +}] +``` + +Notes: + +- `basisPoints: 500` means 5%. +- Creator percentages must total 100. +- For the full CLI plugin creation flow, use /docs/dev-tools/cli/core/create-collection + +## Related Pages + +- Fetch a Core Collection: /docs/smart-contracts/core/collections/fetch +- Core plugins overview: /docs/smart-contracts/core/plugins +- Create an asset into the Collection: /docs/smart-contracts/core/create-asset +- Full CLI create collection docs: /docs/dev-tools/cli/core/create-collection diff --git a/public/smart-contracts/core/collections/fetch.md b/public/smart-contracts/core/collections/fetch.md new file mode 100644 index 00000000..69517902 --- /dev/null +++ b/public/smart-contracts/core/collections/fetch.md @@ -0,0 +1,45 @@ +# Metaplex Core: Fetch Collection + +Use this agent page when the user wants to read or inspect a Core Collection account. + +Human page: https://metaplex.com/docs/smart-contracts/core/collections/fetch + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to fetch a Core Collection by address. +- The user wants to inspect Collection metadata or plugin data. +- The user wants the CLI command to fetch a Collection. + +## SDK Function + +Use `fetchCollection(umi, collectionAddress)`. + +## CLI Command + +```bash +mplx core collection fetch +``` + +If the installed CLI differs from the reference, check: + +```bash +mplx core collection --help +``` + +## Related Pages + +- Create a Core Collection: /docs/smart-contracts/core/collections/create.md +- Fetch Core Assets: /docs/smart-contracts/core/fetch.md +- Core Collections overview: /docs/smart-contracts/core/collections diff --git a/public/smart-contracts/core/create-asset.md b/public/smart-contracts/core/create-asset.md new file mode 100644 index 00000000..4864a7a3 --- /dev/null +++ b/public/smart-contracts/core/create-asset.md @@ -0,0 +1,144 @@ +# Metaplex Core: Create Asset + +Use this agent page when the user wants to create, mint, or initialize a Metaplex Core Asset. + +Human page: https://metaplex.com/docs/smart-contracts/core/create-asset + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to create a Core Asset or Core NFT. +- The user asks which Core SDK function creates an asset. +- The user wants to mint an asset into a Core Collection. +- The user wants to create a Core Asset with plugins such as royalties. + +## Do Not Use + +- For fungible tokens, use SPL Token or Token Metadata fungible-token docs. +- For compressed NFTs, use Bubblegum docs. +- For legacy Token Metadata NFTs, use Token Metadata docs. + +## Required Context + +- Core Assets are single on-chain accounts that store ownership, metadata URI, and plugin data. +- A new asset requires a fresh signer. Do not reuse an existing asset signer. +- Metadata JSON should be uploaded first and referenced by URI. +- The Core program ID is `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d`. + +## SDK Packages + +```bash +npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi +``` + +## CLI Quick Reference + +Use these when the user asks for the Metaplex CLI flow instead of SDK code. + +```bash +mplx core asset create --name --uri +mplx core asset create --name --uri --owner +mplx core asset create --name --uri --collection +mplx core asset create --files --image --offchain +mplx core asset template +``` + +Notes: + +- `--owner` mints to a different wallet and works on all asset create variants. +- `--files` uploads local image and metadata files automatically. If JSON upload fails, use the manual upload workflow. +- `mplx core asset template` generates template files. +- Full CLI docs: /docs/dev-tools/cli/core/create-asset + +## CLI Metadata Quick Reference + +```bash +# One-step local file workflow +mplx core asset create --files --image ./image.png --offchain ./metadata.json +``` + +For manual upload workflows or batch creation, use the full CLI docs: /docs/dev-tools/cli/core/create-asset + +## Minimal Create + +```ts +import { generateSigner } from '@metaplex-foundation/umi' +import { create } from '@metaplex-foundation/mpl-core' + +const asset = generateSigner(umi) + +await create(umi, { + asset, + name: 'My NFT', + uri: 'https://example.com/metadata.json', +}).sendAndConfirm(umi) +``` + +## Create Into A Collection + +Use `fetchCollection` first, then pass the collection into `create`. + +```ts +import { generateSigner, publicKey } from '@metaplex-foundation/umi' +import { create, fetchCollection } from '@metaplex-foundation/mpl-core' + +const collectionAddress = publicKey('YOUR_COLLECTION_ADDRESS') +const collection = await fetchCollection(umi, collectionAddress) +const asset = generateSigner(umi) + +await create(umi, { + asset, + collection, + name: 'Collection Item #1', + uri: 'https://example.com/item1.json', +}).sendAndConfirm(umi) +``` + +## Create With Royalties + +```ts +import { generateSigner, publicKey } from '@metaplex-foundation/umi' +import { create, ruleSet } from '@metaplex-foundation/mpl-core' + +const creator = publicKey('YOUR_CREATOR_ADDRESS') +const asset = generateSigner(umi) + +await create(umi, { + asset, + name: 'NFT with Royalties', + uri: 'https://example.com/metadata.json', + plugins: [ + { + type: 'Royalties', + basisPoints: 500, + creators: [{ address: creator, percentage: 100 }], + ruleSet: ruleSet('None'), + }, + ], +}).sendAndConfirm(umi) +``` + +## Common Errors + +- `Asset account already exists`: generate a new asset signer. +- `Collection not found`: verify the collection address and fetch a Core Collection, not a Token Metadata collection. +- `Insufficient funds`: fund the payer with enough SOL for rent and fees. + +## Related Pages + +- Fetch a Core Asset: /docs/smart-contracts/core/fetch +- Update a Core Asset: /docs/smart-contracts/core/update +- Create a Core Collection: /docs/smart-contracts/core/collections/create +- Core plugins overview: /docs/smart-contracts/core/plugins +- Full CLI create asset docs: /docs/dev-tools/cli/core/create-asset diff --git a/public/smart-contracts/core/execute-asset-signing.md b/public/smart-contracts/core/execute-asset-signing.md new file mode 100644 index 00000000..9d0c0e09 --- /dev/null +++ b/public/smart-contracts/core/execute-asset-signing.md @@ -0,0 +1,64 @@ +# Metaplex Core: Execute Asset Signing + +Use this agent page when the user asks about Core Asset Signer PDAs, asset-owned wallets, or executing CLI commands through an asset signer. + +Human page: https://metaplex.com/docs/smart-contracts/core/execute-asset-signing + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how an MPL Core Asset can sign transactions. +- The user asks how to inspect or fund an asset signer PDA. +- The user asks how to use a Core Asset as the active CLI wallet. +- The user asks about execute limitations. + +## CLI Quick Reference + +```bash +mplx core asset execute info +``` + +This shows the signer PDA address and SOL balance. + +## Asset-Signer Wallet Quick Reference + +```bash +# 1. Check the PDA info for an asset. +mplx core asset execute info + +# 2. Fund the PDA. +mplx toolbox sol transfer 0.1 + +# 3. Register the asset signer as a wallet. +mplx config wallets add vault --asset + +# 4. Switch to the asset-signer wallet. +mplx config wallets set vault + +# 5. Use commands as the PDA. +mplx toolbox sol balance +mplx toolbox sol transfer 0.01 +mplx core asset create --name "PDA Created NFT" --uri "https://example.com/nft" +``` + +For bypass options, raw instructions, supported command families, and CPI limitations, use the full CLI docs: /docs/dev-tools/cli/core/execute + +## CPI Limitations + +Some operations cannot be wrapped in `execute()` because of Solana CPI constraints: + +- Large account creation, including Merkle trees and candy machines. +- Native SOL wrapping, where `transferSol` to a token account fails in CPI context. + +Use a normal wallet to create infrastructure first, then switch to the asset-signer wallet for subsequent operations. diff --git a/public/smart-contracts/core/fetch.md b/public/smart-contracts/core/fetch.md new file mode 100644 index 00000000..7f059043 --- /dev/null +++ b/public/smart-contracts/core/fetch.md @@ -0,0 +1,62 @@ +# Metaplex Core: Fetch Asset Or Collection + +Use this agent page when the user wants to fetch, read, inspect, or download a Metaplex Core Asset or Collection. + +Human page: https://metaplex.com/docs/smart-contracts/core/fetch + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to fetch a Core Asset by address. +- The user asks how to fetch a Core Collection by address. +- The user wants the CLI command to download asset or collection files. + +## SDK Functions + +- Fetch an asset with `fetchAsset(umi, publicKey)`. +- Fetch a collection with `fetchCollection(umi, publicKey)`. +- For large indexed queries, prefer DAS where available. + +## CLI Commands + +The CLI reference uses the `asset` and `collection` subcommands: + +```bash +mplx core asset fetch +mplx core collection fetch +``` + +The human CLI docs may also show `mplx core fetch asset ` and `mplx core fetch collection `. Prefer the installed CLI help if there is a mismatch: + +```bash +mplx core --help +mplx core asset --help +mplx core collection --help +``` + +## Common Flow + +```bash +# Fetch a Core Asset. +mplx core asset fetch + +# Fetch a Core Collection. +mplx core collection fetch +``` + +## Related Pages + +- Create a Core Asset: /docs/smart-contracts/core/create-asset.md +- Update a Core Asset: /docs/smart-contracts/core/update.md +- Create a Core Collection: /docs/smart-contracts/core/collections/create.md diff --git a/public/smart-contracts/core/plugins.md b/public/smart-contracts/core/plugins.md new file mode 100644 index 00000000..0dc7b27a --- /dev/null +++ b/public/smart-contracts/core/plugins.md @@ -0,0 +1,75 @@ +# Metaplex Core: Plugins + +Use this agent page when the user wants to configure Core plugins, especially CLI `--pluginsFile` input. + +Human page: https://metaplex.com/docs/smart-contracts/core/plugins + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks for the plugin JSON file format. +- The user asks how to add royalties at asset or collection creation. +- The user asks which plugin types are available in Core CLI flows. + +## CLI Plugin Quick Reference + +Use this JSON shape with `--pluginsFile`: + +```json +[{ + "type": "Royalties", + "basisPoints": 500, + "creators": [{"address": "", "percentage": 100}], + "ruleSet": {"type": "None"} +}] +``` + +## Available Plugin Types + +- `Royalties` +- `FreezeDelegate` +- `BurnDelegate` +- `TransferDelegate` +- `Attributes` +- `ImmutableMetadata` +- `PermanentFreezeDelegate` +- `PermanentTransferDelegate` +- `PermanentBurnDelegate` + +## RuleSet Options + +```json +{"type": "None"} +``` + +```json +{"type": "ProgramAllowList", "programs": [""]} +``` + +```json +{"type": "ProgramDenyList", "programs": [""]} +``` + +Notes: + +- `basisPoints: 500` means 5%. +- Creator percentages must total 100. +- For complete CLI plugin examples, use /docs/dev-tools/cli/core/plugins + +## Related Pages + +- Create a Core Asset with plugins: /docs/smart-contracts/core/create-asset +- Create a Core Collection with plugins: /docs/smart-contracts/core/collections/create +- Add plugins after creation: /docs/smart-contracts/core/plugins/adding-plugins +- Full CLI plugin docs: /docs/dev-tools/cli/core/plugins diff --git a/public/smart-contracts/core/transfer.md b/public/smart-contracts/core/transfer.md new file mode 100644 index 00000000..efafbbed --- /dev/null +++ b/public/smart-contracts/core/transfer.md @@ -0,0 +1,45 @@ +# Metaplex Core: Transfer Asset + +Use this agent page when the user wants to transfer ownership of a Core Asset to another wallet. + +Human page: https://metaplex.com/docs/smart-contracts/core/transfer + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to send a Core Asset to another wallet. +- The user asks for the CLI command to transfer a Core Asset. +- The user asks whether collection data is needed for CLI transfer. + +## SDK Function + +Use `transfer(umi, { asset, newOwner })`. For SDK code, include collection data when required by the asset state or surrounding docs. + +## CLI Command + +```bash +mplx core asset transfer +``` + +Notes: + +- The CLI auto-detects the Collection from the asset. +- Only the owner or an authorized Transfer Delegate can transfer the asset. +- Transfer changes ownership, not update authority. + +## Related Pages + +- Fetch before transfer: /docs/smart-contracts/core/fetch.md +- Update metadata instead: /docs/smart-contracts/core/update.md +- Transfer Delegate plugin: /docs/smart-contracts/core/plugins/transfer-delegate diff --git a/public/smart-contracts/core/update.md b/public/smart-contracts/core/update.md new file mode 100644 index 00000000..21c9492d --- /dev/null +++ b/public/smart-contracts/core/update.md @@ -0,0 +1,49 @@ +# Metaplex Core: Update Asset + +Use this agent page when the user wants to update a Core Asset's name, metadata URI, image, or collection membership. + +Human page: https://metaplex.com/docs/smart-contracts/core/update + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks how to update Core Asset metadata. +- The user asks how to change a Core Asset's name or URI. +- The user asks how to re-upload an image through the CLI. +- The user asks how to move a Core Asset to another Collection. + +## SDK Function + +Use `update(umi, { asset, name, uri })` for SDK updates. Fetch the asset first when you need current state or collection data. + +## CLI Commands + +```bash +mplx core asset update --name +mplx core asset update --uri +mplx core asset update --image +mplx core asset update --collectionId +``` + +Notes: + +- `--image ` re-uploads the image via Irys. +- `--collectionId ` moves the asset to a different collection. +- Only the update authority or an authorized update delegate can update asset metadata. + +## Related Pages + +- Fetch a Core Asset first: /docs/smart-contracts/core/fetch.md +- Transfer ownership instead: /docs/smart-contracts/core/transfer.md +- Plugin updates: /docs/smart-contracts/core/plugins/update-plugins diff --git a/public/smart-contracts/genesis/bonding-curve-launch.md b/public/smart-contracts/genesis/bonding-curve-launch.md new file mode 100644 index 00000000..12aee0c6 --- /dev/null +++ b/public/smart-contracts/genesis/bonding-curve-launch.md @@ -0,0 +1,63 @@ +# Metaplex Genesis: Launch Bonding Curve Via API + +Use this agent page when the user wants to create and register a bonding curve token launch with the Genesis SDK, API, or CLI. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve-launch + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## SDK/API Functions + +- `createAndRegisterLaunch()` handles create, sign/send, and register in one call. +- `createLaunch()` returns unsigned transactions for custom signing. +- `signAndSendLaunchTransactions()` sends the create transactions. +- `registerLaunch()` registers the launch after transactions confirm onchain. + +## CLI Quick Reference + +```bash +mplx genesis launch create --launchType bonding-curve \ + --name \ + --symbol \ + --image + +mplx genesis launch create --launchType bonding-curve \ + --name \ + --symbol \ + --image \ + --creatorFeeWallet \ + --firstBuyAmount + +mplx genesis launch create --launchType bonding-curve \ + --name \ + --symbol \ + --image \ + --agentMint \ + --agentSetToken +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/launch + +## Notes + +- `--image` must be an Irys gateway URL. +- `--firstBuyAmount` is in SOL and is fee-free. +- `--agentSetToken` is irreversible. +- `--agentMint` auto-derives the creator fee wallet from the agent PDA. + +## Related Pages + +- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md +- Bonding Curve swaps: /docs/smart-contracts/genesis/bonding-curve-swaps.md +- API Client: /docs/smart-contracts/genesis/sdk/api-client.md +- Full CLI launch docs: /docs/dev-tools/cli/genesis/launch diff --git a/public/smart-contracts/genesis/bonding-curve-swaps.md b/public/smart-contracts/genesis/bonding-curve-swaps.md new file mode 100644 index 00000000..e9d03872 --- /dev/null +++ b/public/smart-contracts/genesis/bonding-curve-swaps.md @@ -0,0 +1,57 @@ +# Metaplex Genesis: Bonding Curve Swaps + +Use this agent page when the user wants to quote, buy, sell, or inspect a Genesis Bonding Curve. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve-swaps + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## SDK Functions + +- `findBondingCurveBucketV2Pda()` derives the bucket PDA. +- `isSwappable()` checks whether the curve is active. +- `getSwapResult()` computes a quote including fees. +- `applySlippage()` derives `minAmountOutScaled`. +- `swapBondingCurveV2()` executes the buy or sell instruction. + +## CLI Quick Reference + +```bash +# Inspect curve state. +mplx genesis swap --info + +# Quote without swapping. +mplx genesis swap --info --buyAmount +mplx genesis swap --info --sellAmount + +# Execute swaps. +mplx genesis swap --buyAmount --slippage +mplx genesis swap --sellAmount --slippage + +# Inspect the bonding curve bucket. +mplx genesis bucket fetch --type bonding-curve +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/bonding-curve + +## Notes + +- CLI buy amounts are quote-token base units; for SOL, `100000000` is 0.1 SOL. +- CLI `--slippage` is basis points; `200` is 2%. +- SDK swaps require explicit wSOL handling; CLI buys can auto-wrap SOL. + +## Related Pages + +- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md +- Launch Bonding Curve: /docs/smart-contracts/genesis/bonding-curve-launch.md +- Full CLI bonding curve docs: /docs/dev-tools/cli/genesis/bonding-curve diff --git a/public/smart-contracts/genesis/bonding-curve.md b/public/smart-contracts/genesis/bonding-curve.md new file mode 100644 index 00000000..3fb0a63d --- /dev/null +++ b/public/smart-contracts/genesis/bonding-curve.md @@ -0,0 +1,52 @@ +# Metaplex Genesis: Bonding Curve + +Use this agent page when the user asks about Genesis Bonding Curve concepts or a CLI bonding curve lifecycle. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user wants continuous trading instead of a deposit window. +- The user asks how to launch a bonding curve token. +- The user asks how bonding curve trading and graduation work. + +## Concepts + +- Bonding Curve launches use a constant product AMM. +- Users can buy and sell while the curve is active. +- Graduation to Raydium CPMM happens automatically when all curve tokens are sold. +- Bonding Curve launches are created through the Genesis API flow, not the manual bucket flow. + +## CLI Quick Reference + +```bash +mplx genesis launch create --launchType bonding-curve \ + --name \ + --symbol \ + --image + +mplx genesis swap --info +mplx genesis swap --buyAmount +mplx genesis swap --sellAmount +mplx genesis bucket fetch --type bonding-curve +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/bonding-curve + +## Related Pages + +- Launch via API: /docs/smart-contracts/genesis/bonding-curve-launch.md +- Swap integration: /docs/smart-contracts/genesis/bonding-curve-swaps.md +- Full CLI bonding curve docs: /docs/dev-tools/cli/genesis/bonding-curve diff --git a/public/smart-contracts/genesis/getting-started.md b/public/smart-contracts/genesis/getting-started.md new file mode 100644 index 00000000..c24a10b0 --- /dev/null +++ b/public/smart-contracts/genesis/getting-started.md @@ -0,0 +1,58 @@ +# Metaplex Genesis: Getting Started + +Use this agent page when the user wants the Genesis launch lifecycle or a starting point for implementing a token launch. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/getting-started + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## Lifecycle + +Manual flow: + +```text +create -> bucket add-* -> finalize -> deposit/withdraw/transition -> claim -> revoke +``` + +Launch API flow: + +```text +launch create -> deposit window or swaps -> graduation -> claim +``` + +## SDK Entry Points + +- `initializeV2()` creates the Genesis account and token mint. +- `addLaunchPoolBucketV2()` adds a Launch Pool bucket. +- `addPresaleBucketV2()` adds a Presale bucket. +- `addUnlockedBucketV2()` adds a treasury/team bucket. +- `finalizeV2()` locks the launch configuration. + +## CLI Quick Reference + +```bash +mplx genesis create --name --symbol --totalSupply +mplx genesis bucket add-launch-pool --allocation --depositStart --depositEnd --claimStart --claimEnd +mplx genesis bucket add-presale --allocation --quoteCap --depositStart --depositEnd --claimStart --bucketIndex +mplx genesis bucket add-unlocked --recipient --claimStart +mplx genesis finalize +``` + +Full CLI docs: /docs/dev-tools/cli/genesis + +## Notes + +- Low-level commands use base units and Unix seconds. +- `finalize` is irreversible. +- `finalize` requires full supply allocation; use unlocked buckets for remainder. +- If using SOL as quote token in manual flows, wrap SOL before depositing. diff --git a/public/smart-contracts/genesis/index.md b/public/smart-contracts/genesis/index.md new file mode 100644 index 00000000..7cf4b33a --- /dev/null +++ b/public/smart-contracts/genesis/index.md @@ -0,0 +1,57 @@ +# Metaplex Genesis + +Use this agent page when the user asks about Genesis token launches, launch mechanisms, or the overall Genesis CLI/SDK flow. + +Human page: https://metaplex.com/docs/smart-contracts/genesis + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user asks what Genesis is or which launch type to use. +- The user asks for the high-level Genesis lifecycle. +- The user asks for a CLI overview before choosing a specific flow. + +## Concepts + +- Genesis creates and manages token launches on Solana. +- Launch types include Launch Pool, Presale, and Bonding Curve. +- Low-level flow: create Genesis account, add buckets, finalize, deposit or swap, claim, optionally revoke authorities. +- API flow: `genesis launch create` handles creation and platform registration in one command. + +## CLI Quick Reference + +```bash +# Recommended all-in-one launch API flow. +mplx genesis launch create --name --symbol --image ... + +# Manual setup flow. +mplx genesis create --name --symbol --totalSupply +mplx genesis bucket add-launch-pool ... +mplx genesis bucket add-presale ... +mplx genesis bucket add-unlocked ... +mplx genesis finalize +mplx genesis fetch +mplx genesis bucket fetch --bucketIndex --type +``` + +Full CLI docs: /docs/dev-tools/cli/genesis + +## Route To Task Pages + +- Launch Pool: /docs/smart-contracts/genesis/launch-pool.md +- Presale: /docs/smart-contracts/genesis/presale.md +- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md +- Bonding Curve launch via API: /docs/smart-contracts/genesis/bonding-curve-launch.md +- Bonding Curve swaps: /docs/smart-contracts/genesis/bonding-curve-swaps.md +- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/integration-apis/create-launch.md b/public/smart-contracts/genesis/integration-apis/create-launch.md new file mode 100644 index 00000000..c06e0539 --- /dev/null +++ b/public/smart-contracts/genesis/integration-apis/create-launch.md @@ -0,0 +1,42 @@ +# Metaplex Genesis API: Create Launch + +Use this agent page when the user wants to call the REST API endpoint that builds Genesis launch transactions. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/integration-apis/create-launch + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## API Endpoint + +```text +POST /v1/launches/create +``` + +This returns unsigned transactions. The caller must sign and send them, then call Register Launch after onchain confirmation. + +## Prefer SDK When Possible + +Use `createAndRegisterLaunch()` from the SDK when the user does not need direct HTTP access. + +## CLI Equivalent + +```bash +mplx genesis launch create --name --symbol --image ... +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/launch + +## Related Pages + +- Register Launch: /docs/smart-contracts/genesis/integration-apis/register.md +- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/integration-apis/register.md b/public/smart-contracts/genesis/integration-apis/register.md new file mode 100644 index 00000000..078f9eb9 --- /dev/null +++ b/public/smart-contracts/genesis/integration-apis/register.md @@ -0,0 +1,42 @@ +# Metaplex Genesis API: Register Launch + +Use this agent page when the user wants to register an already-created Genesis launch after onchain transactions confirm. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/integration-apis/register + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## API Endpoint + +```text +POST /v1/launches/register +``` + +Register only after the create transactions are confirmed onchain. + +## Prefer SDK When Possible + +Use `createAndRegisterLaunch()` for the common one-call flow, or `registerLaunch()` after custom transaction sending. + +## CLI Equivalent + +```bash +mplx genesis launch register --launchConfig +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/launch + +## Related Pages + +- Create Launch: /docs/smart-contracts/genesis/integration-apis/create-launch.md +- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/launch-pool.md b/public/smart-contracts/genesis/launch-pool.md new file mode 100644 index 00000000..718cc529 --- /dev/null +++ b/public/smart-contracts/genesis/launch-pool.md @@ -0,0 +1,61 @@ +# Metaplex Genesis: Launch Pool + +Use this agent page when the user wants a Genesis Launch Pool, fair launch, proportional token distribution, deposit, withdraw, transition, or claim flow. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/launch-pool + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user wants proportional distribution based on deposits. +- The user asks how to add a Launch Pool bucket. +- The user asks how users deposit, withdraw, transition, or claim in a launch pool. + +## SDK Functions + +- `addLaunchPoolBucketV2()` adds the Launch Pool bucket. +- `addUnlockedBucketV2()` commonly adds the treasury/end-behavior destination. +- `finalizeV2()` locks the configuration. +- `depositLaunchPoolV2()`, `withdrawLaunchPoolV2()`, `triggerBehaviors()`, and `claimLaunchPoolV2()` handle user lifecycle operations. + +## CLI Quick Reference + +```bash +mplx genesis bucket add-launch-pool \ + --allocation \ + --depositStart \ + --depositEnd \ + --claimStart \ + --claimEnd + +mplx genesis deposit --amount --bucketIndex +mplx genesis withdraw --amount --bucketIndex +mplx genesis transition --bucketIndex +mplx genesis claim --bucketIndex +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/launch-pool + +## Notes + +- Launch Pool distribution is proportional: user share of deposits determines user share of tokens. +- Add end behaviors and an unlocked bucket when collected funds should route to treasury/team. +- `--endBehavior` format is `:`, where `10000` means 100%. +- Wrap SOL before manual deposits when the quote token is SOL. + +## Related Pages + +- Getting Started: /docs/smart-contracts/genesis/getting-started.md +- Presale: /docs/smart-contracts/genesis/presale.md +- Full CLI launch pool docs: /docs/dev-tools/cli/genesis/launch-pool diff --git a/public/smart-contracts/genesis/presale.md b/public/smart-contracts/genesis/presale.md new file mode 100644 index 00000000..a8c956f2 --- /dev/null +++ b/public/smart-contracts/genesis/presale.md @@ -0,0 +1,60 @@ +# Metaplex Genesis: Presale + +Use this agent page when the user wants a fixed-price Genesis token sale or presale. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/presale + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## When To Use + +- The user wants fixed-price token distribution. +- The user asks how to add a Presale bucket. +- The user asks how users deposit into or claim from a presale. + +## SDK Functions + +- `addPresaleBucketV2()` adds the Presale bucket. +- `addUnlockedBucketV2()` commonly adds the treasury/remainder bucket. +- `finalizeV2()` locks the configuration. +- `depositPresaleV2()` and `claimPresaleV2()` handle user operations. + +## CLI Quick Reference + +```bash +mplx genesis bucket add-presale \ + --allocation \ + --quoteCap \ + --depositStart \ + --depositEnd \ + --claimStart \ + --bucketIndex + +mplx genesis presale deposit --amount --bucketIndex +mplx genesis presale claim --bucketIndex +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/presale + +## Notes + +- Fixed price is `quoteCap / allocation`. +- `quoteCap` and `allocation` are in base units. +- Use `--minimumDeposit` and `--depositLimit` for deposit constraints. +- Wrap SOL before manual deposits when the quote token is SOL. + +## Related Pages + +- Launch Pool: /docs/smart-contracts/genesis/launch-pool.md +- Getting Started: /docs/smart-contracts/genesis/getting-started.md +- Full CLI presale docs: /docs/dev-tools/cli/genesis/presale diff --git a/public/smart-contracts/genesis/sdk/api-client.md b/public/smart-contracts/genesis/sdk/api-client.md new file mode 100644 index 00000000..3314ad8f --- /dev/null +++ b/public/smart-contracts/genesis/sdk/api-client.md @@ -0,0 +1,41 @@ +# Metaplex Genesis: API Client + +Use this agent page when the user wants to create and register Genesis launches using the Genesis SDK API client. + +Human page: https://metaplex.com/docs/smart-contracts/genesis/sdk/api-client + +## Agent Routing + +- Default to SDK or API instructions when the user is building an app, backend, script, or integration. +- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. +- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. + +## Environment Prerequisites + +- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. +- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +## SDK Functions + +- `createAndRegisterLaunch()` is the preferred high-level path. +- `createLaunch()` builds unsigned launch transactions. +- `registerLaunch()` registers a confirmed onchain launch with the Metaplex platform. +- Use the lower-level functions when custom signing, Jito bundles, retries, or server-side transaction senders are needed. + +## CLI Equivalent + +For users who want the CLI instead of SDK: + +```bash +mplx genesis launch create --name --symbol --image ... +mplx genesis launch register --launchConfig +``` + +Full CLI docs: /docs/dev-tools/cli/genesis/launch + +## Related Pages + +- Create Launch REST API: /docs/smart-contracts/genesis/integration-apis/create-launch.md +- Register Launch REST API: /docs/smart-contracts/genesis/integration-apis/register.md +- Bonding Curve launch guide: /docs/smart-contracts/genesis/bonding-curve-launch.md diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx index e3b972f5..2d30965a 100644 --- a/src/components/Layout.jsx +++ b/src/components/Layout.jsx @@ -166,7 +166,7 @@ export function Layout({ children, page }) {
- {page.product?.skill && } + {page.agentSkill && } {page.cli && }
diff --git a/src/components/SkillBadge.jsx b/src/components/SkillBadge.jsx index 3e5eaa55..0039bc34 100644 --- a/src/components/SkillBadge.jsx +++ b/src/components/SkillBadge.jsx @@ -51,7 +51,7 @@ function CodeRow({ label, command }) { ) } -export function SkillBadge() { +export function SkillBadge({ href }) { const [open, setOpen] = useState(false) const ref = useClickOutside(() => setOpen(false)) @@ -59,13 +59,11 @@ export function SkillBadge() { const npxAdd = `npx skills add metaplex-foundation/skill` return ( -
- + - {open && ( -
-

Metaplex Skill File

-

- This product is part of the{' '} - - Metaplex Skill package - - {' '}— a collection of skill files that give AI coding agents full knowledge of Metaplex programs, SDKs, and CLI tools. - {' '}Learn more in the{' '} - setOpen(false)} - > - Skill docs - - . -

-
- - +
+ + + {open && ( +
+

Metaplex Skill File

+

+ This product is part of the{' '} + + Metaplex Skill package + + {' '}— a collection of skill files that give AI coding agents full knowledge of Metaplex programs, SDKs, and CLI tools. + {' '}Learn more in the{' '} + setOpen(false)} + > + Skill docs + + . +

+
+ + +
-
- )} + )} +
) } diff --git a/src/pages/en/agents/create-agent-token.md b/src/pages/en/agents/create-agent-token.md index 67d2672c..cfddb460 100644 --- a/src/pages/en/agents/create-agent-token.md +++ b/src/pages/en/agents/create-agent-token.md @@ -2,6 +2,7 @@ title: Create an Agent Token metaTitle: Create an Agent Token with Metaplex Genesis | Metaplex Agents description: How to launch a bonding curve token on behalf of a Metaplex agent using the Genesis SDK — including automatic creator fee routing, first buy, devnet testing, and error handling. +agentSkill: /agents/create-agent-token.md keywords: - agent token - token launch diff --git a/src/pages/en/agents/index.md b/src/pages/en/agents/index.md index 6d34ffb3..213893ee 100644 --- a/src/pages/en/agents/index.md +++ b/src/pages/en/agents/index.md @@ -2,6 +2,7 @@ title: Agent Kit metaTitle: Create & Run Agents on Solana | Agent Registry | Metaplex description: Create, register, and run autonomous agents on Solana. Use the Metaplex Agent skills and agent registry to manage your autonomous agents. +agentSkill: /agents/index.md tableOfContents: false keywords: - Solana agents diff --git a/src/pages/en/agents/mint-agent.md b/src/pages/en/agents/mint-agent.md index 2ecc05e9..69b171a2 100644 --- a/src/pages/en/agents/mint-agent.md +++ b/src/pages/en/agents/mint-agent.md @@ -2,6 +2,7 @@ title: Mint an Agent metaTitle: Mint an Agent | Metaplex description: Create an onchain AI agent in a single transaction using the Metaplex API and the mpl-agent-registry SDK. The hosted API stores agent metadata and returns an unsigned transaction you sign and submit. +agentSkill: /agents/mint-agent.md keywords: - mint agent - agent registration diff --git a/src/pages/en/agents/register-agent.md b/src/pages/en/agents/register-agent.md index ac1c2479..0ddfdcb1 100644 --- a/src/pages/en/agents/register-agent.md +++ b/src/pages/en/agents/register-agent.md @@ -2,6 +2,7 @@ title: Register an Agent metaTitle: Register an Agent on Solana | Metaplex 014 Agent Registry description: Register an agent identity on the Metaplex 014 agent registry by binding an identity record to an MPL Core asset. +agentSkill: /agents/register-agent.md keywords: - register agent - agent identity diff --git a/src/pages/en/agents/run-agent.md b/src/pages/en/agents/run-agent.md index ed65e8d5..2591ae13 100644 --- a/src/pages/en/agents/run-agent.md +++ b/src/pages/en/agents/run-agent.md @@ -2,6 +2,7 @@ title: Read Agent Data metaTitle: Read Agent Data on Solana | Metaplex Agent Registry description: Verify agent registration and read agent identity data on Solana. +agentSkill: /agents/run-agent.md keywords: - read agent data - agent identity diff --git a/src/pages/en/agents/run-an-agent.md b/src/pages/en/agents/run-an-agent.md index df3b207c..a413d952 100644 --- a/src/pages/en/agents/run-an-agent.md +++ b/src/pages/en/agents/run-an-agent.md @@ -2,6 +2,7 @@ title: Run an Agent metaTitle: Run an Agent on Solana | Metaplex Agent Registry description: Set up an executive profile and delegate execution to run an autonomous agent on Solana. +agentSkill: /agents/run-an-agent.md keywords: - run agent - executive profile diff --git a/src/pages/en/agents/skill/how-it-works.md b/src/pages/en/agents/skill/how-it-works.md index d274b5d4..51e0bcc2 100644 --- a/src/pages/en/agents/skill/how-it-works.md +++ b/src/pages/en/agents/skill/how-it-works.md @@ -2,6 +2,7 @@ title: How It Works metaTitle: How It Works | Metaplex Skill description: Understand the progressive disclosure architecture of the Metaplex Skill. +agentSkill: /agents/skill/how-it-works.md created: '02-23-2026' updated: '04-08-2026' keywords: diff --git a/src/pages/en/agents/skill/index.md b/src/pages/en/agents/skill/index.md index dd71dd49..f0cbbdcd 100644 --- a/src/pages/en/agents/skill/index.md +++ b/src/pages/en/agents/skill/index.md @@ -2,6 +2,7 @@ title: Metaplex Skill metaTitle: Metaplex Skill | Agents description: An Agent Skill that gives AI coding agents full knowledge of Metaplex programs, CLI commands, and SDK patterns. +agentSkill: /agents/skill.md keywords: - agent skill - AI coding agent diff --git a/src/pages/en/agents/skill/installation.md b/src/pages/en/agents/skill/installation.md index c6a1f3c3..153d02ab 100644 --- a/src/pages/en/agents/skill/installation.md +++ b/src/pages/en/agents/skill/installation.md @@ -2,6 +2,7 @@ title: Installation metaTitle: Installation | Metaplex Skill description: Install the Metaplex Skill in Claude Code, Cursor, Copilot, or any AI coding agent. +agentSkill: /agents/skill/installation.md created: '02-23-2026' updated: '03-04-2026' keywords: diff --git a/src/pages/en/agents/skill/programs-and-operations.md b/src/pages/en/agents/skill/programs-and-operations.md index baa5210a..736ae354 100644 --- a/src/pages/en/agents/skill/programs-and-operations.md +++ b/src/pages/en/agents/skill/programs-and-operations.md @@ -2,6 +2,7 @@ title: Programs & Operations metaTitle: Programs & Operations | Metaplex Skill description: Detailed breakdown of programs and operations covered by the Metaplex Skill. +agentSkill: /agents/skill/programs-and-operations.md created: '02-23-2026' updated: '04-08-2026' keywords: diff --git a/src/pages/en/agents/what-is-an-agent.md b/src/pages/en/agents/what-is-an-agent.md index bac56bb9..d272a598 100644 --- a/src/pages/en/agents/what-is-an-agent.md +++ b/src/pages/en/agents/what-is-an-agent.md @@ -2,6 +2,7 @@ title: What Is an Agent? metaTitle: What Is an Agent on Solana? | Metaplex Agent Registry description: Autonomous agents on Solana are MPL Core assets with built-in wallets and on-chain identity records. Learn how agent identity, wallets, and execution delegation work. +agentSkill: /agents/what-is-an-agent.md keywords: - Solana agents - autonomous agents diff --git a/src/pages/en/smart-contracts/core/burn.md b/src/pages/en/smart-contracts/core/burn.md index ad7a3256..3b1ec08f 100644 --- a/src/pages/en/smart-contracts/core/burn.md +++ b/src/pages/en/smart-contracts/core/burn.md @@ -20,6 +20,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/burn-asset +agentSkill: /smart-contracts/core/burn.md howToSteps: - Install the SDK with npm install @metaplex-foundation/mpl-core - Fetch the Asset to verify ownership diff --git a/src/pages/en/smart-contracts/core/collections/create.md b/src/pages/en/smart-contracts/core/collections/create.md index cc83fbd9..65f469d1 100644 --- a/src/pages/en/smart-contracts/core/collections/create.md +++ b/src/pages/en/smart-contracts/core/collections/create.md @@ -18,6 +18,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/create-collection +agentSkill: /smart-contracts/core/collections/create.md howToSteps: - Install the mpl-core SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Upload collection metadata JSON to get a URI diff --git a/src/pages/en/smart-contracts/core/collections/fetch.md b/src/pages/en/smart-contracts/core/collections/fetch.md index 4db48f34..81533806 100644 --- a/src/pages/en/smart-contracts/core/collections/fetch.md +++ b/src/pages/en/smart-contracts/core/collections/fetch.md @@ -18,6 +18,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/fetch +agentSkill: /smart-contracts/core/collections/fetch.md --- `fetchCollection` retrieves a [Core Collection](/smart-contracts/core/collections) account from Solana by its address and deserialises it into a typed object. {% .lead %} diff --git a/src/pages/en/smart-contracts/core/create-asset.md b/src/pages/en/smart-contracts/core/create-asset.md index 0aea129a..557fabd4 100644 --- a/src/pages/en/smart-contracts/core/create-asset.md +++ b/src/pages/en/smart-contracts/core/create-asset.md @@ -19,6 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/create-asset +agentSkill: /smart-contracts/core/create-asset.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Upload metadata JSON to Arweave or IPFS to get a URI diff --git a/src/pages/en/smart-contracts/core/execute-asset-signing.md b/src/pages/en/smart-contracts/core/execute-asset-signing.md index 2d6bcb27..8bc15a9f 100644 --- a/src/pages/en/smart-contracts/core/execute-asset-signing.md +++ b/src/pages/en/smart-contracts/core/execute-asset-signing.md @@ -17,6 +17,7 @@ programmingLanguage: - Rust - JavaScript cli: /dev-tools/cli/core/execute +agentSkill: /smart-contracts/core/execute-asset-signing.md --- The MPL Core Execute instruction introduces the concept of **Asset Signers** to MPL Core Assets. diff --git a/src/pages/en/smart-contracts/core/fetch.md b/src/pages/en/smart-contracts/core/fetch.md index d52f34a6..73ef4c65 100644 --- a/src/pages/en/smart-contracts/core/fetch.md +++ b/src/pages/en/smart-contracts/core/fetch.md @@ -19,6 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/fetch +agentSkill: /smart-contracts/core/fetch.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Configure Umi with your RPC endpoint diff --git a/src/pages/en/smart-contracts/core/plugins/index.md b/src/pages/en/smart-contracts/core/plugins/index.md index 2a1bcb66..91ba7adc 100644 --- a/src/pages/en/smart-contracts/core/plugins/index.md +++ b/src/pages/en/smart-contracts/core/plugins/index.md @@ -18,6 +18,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust +agentSkill: /smart-contracts/core/plugins.md faqs: - q: Can I add plugins after an Asset is created? a: Yes, except for Permanent plugins. Owner Managed plugins require owner signature; Authority Managed plugins require update authority signature. diff --git a/src/pages/en/smart-contracts/core/transfer.md b/src/pages/en/smart-contracts/core/transfer.md index a2b2549a..24b7bce2 100644 --- a/src/pages/en/smart-contracts/core/transfer.md +++ b/src/pages/en/smart-contracts/core/transfer.md @@ -19,6 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/transfer-asset +agentSkill: /smart-contracts/core/transfer.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Fetch the Asset to verify ownership and collection membership diff --git a/src/pages/en/smart-contracts/core/update.md b/src/pages/en/smart-contracts/core/update.md index 57b4693b..2f193e20 100644 --- a/src/pages/en/smart-contracts/core/update.md +++ b/src/pages/en/smart-contracts/core/update.md @@ -19,6 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/update-asset +agentSkill: /smart-contracts/core/update.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Fetch the Asset to get current state diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md b/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md index 60893122..9d49ed07 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md @@ -26,6 +26,7 @@ programmingLanguage: - TypeScript - Bash cli: /dev-tools/cli/genesis/launch +agentSkill: /smart-contracts/genesis/bonding-curve-launch.md proficiencyLevel: Intermediate created: '04-07-2026' updated: '04-09-2026' diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md b/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md index c9644877..be5beac0 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md @@ -26,6 +26,7 @@ programmingLanguage: - TypeScript - Bash cli: /dev-tools/cli/genesis/bonding-curve +agentSkill: /smart-contracts/genesis/bonding-curve-swaps.md proficiencyLevel: Intermediate howToSteps: - Install the Genesis SDK and configure a Umi instance diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve.md b/src/pages/en/smart-contracts/genesis/bonding-curve.md index df145cda..df61a204 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve.md @@ -16,6 +16,7 @@ about: - Token Launch - Genesis proficiencyLevel: Beginner +agentSkill: /smart-contracts/genesis/bonding-curve.md faqs: - q: What is the difference between a bonding curve and a launch pool? a: A bonding curve lets users buy and sell continuously from the moment trading opens — price moves with every trade. A launch pool has a fixed deposit window and settles at a single clearing price at the end. diff --git a/src/pages/en/smart-contracts/genesis/getting-started.md b/src/pages/en/smart-contracts/genesis/getting-started.md index 64002d61..efa1d36a 100644 --- a/src/pages/en/smart-contracts/genesis/getting-started.md +++ b/src/pages/en/smart-contracts/genesis/getting-started.md @@ -19,6 +19,7 @@ about: - Launch lifecycle - Token distribution proficiencyLevel: Beginner +agentSkill: /smart-contracts/genesis/getting-started.md faqs: - q: What does initializing a Genesis Account create? a: It creates a new SPL token with metadata, a master coordination account, and holds the total token supply in escrow for distribution. diff --git a/src/pages/en/smart-contracts/genesis/index.md b/src/pages/en/smart-contracts/genesis/index.md index 151994b1..12f9d842 100644 --- a/src/pages/en/smart-contracts/genesis/index.md +++ b/src/pages/en/smart-contracts/genesis/index.md @@ -25,6 +25,7 @@ about: - Genesis protocol - Fair distribution proficiencyLevel: Beginner +agentSkill: /smart-contracts/genesis/index.md faqs: - q: What is Genesis? a: Genesis is a Metaplex smart contract for Token Generation Events (TGE) on Solana. It provides on-chain infrastructure for presales, launch pools, and auctions. diff --git a/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md b/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md index 0466f71c..5dcf70b4 100644 --- a/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md +++ b/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md @@ -17,6 +17,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/genesis/integration-apis/create-launch.md --- Build the on-chain transactions for a new Genesis token launch. Returns unsigned transactions that must be signed and sent before calling [Register Launch](/smart-contracts/genesis/integration-apis/register). {% .lead %} diff --git a/src/pages/en/smart-contracts/genesis/integration-apis/register.md b/src/pages/en/smart-contracts/genesis/integration-apis/register.md index b94d463c..79750f66 100644 --- a/src/pages/en/smart-contracts/genesis/integration-apis/register.md +++ b/src/pages/en/smart-contracts/genesis/integration-apis/register.md @@ -17,6 +17,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/genesis/integration-apis/register.md --- Register a Genesis launch after the on-chain transactions from [Create Launch](/smart-contracts/genesis/integration-apis/create-launch) have been confirmed. The endpoint validates the on-chain state, creates the launch listing, and returns a launch page URL. {% .lead %} diff --git a/src/pages/en/smart-contracts/genesis/launch-pool.md b/src/pages/en/smart-contracts/genesis/launch-pool.md index fee663d4..acf298db 100644 --- a/src/pages/en/smart-contracts/genesis/launch-pool.md +++ b/src/pages/en/smart-contracts/genesis/launch-pool.md @@ -25,6 +25,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/genesis/launch-pool.md howToSteps: - Initialize a Genesis Account with your token - Add a Launch Pool bucket with deposit window configuration diff --git a/src/pages/en/smart-contracts/genesis/presale.md b/src/pages/en/smart-contracts/genesis/presale.md index 36a83415..04105d55 100644 --- a/src/pages/en/smart-contracts/genesis/presale.md +++ b/src/pages/en/smart-contracts/genesis/presale.md @@ -24,6 +24,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/genesis/presale.md howToSteps: - Initialize a Genesis Account with your token allocation - Add a Presale bucket with price and cap configuration diff --git a/src/pages/en/smart-contracts/genesis/sdk/api-client.md b/src/pages/en/smart-contracts/genesis/sdk/api-client.md index b30f0089..823b5aab 100644 --- a/src/pages/en/smart-contracts/genesis/sdk/api-client.md +++ b/src/pages/en/smart-contracts/genesis/sdk/api-client.md @@ -18,6 +18,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/genesis/sdk/api-client.md --- The Genesis API client provides high-level functions for creating and registering token launches. It handles transaction building, signing, and on-chain registration through a simple interface built on Umi. {% .lead %} diff --git a/src/shared/usePage.js b/src/shared/usePage.js index 829b9c5f..466e77c8 100644 --- a/src/shared/usePage.js +++ b/src/shared/usePage.js @@ -56,6 +56,7 @@ export function usePage(pageProps) { howToSteps: pageProps.markdoc?.frontmatter.howToSteps ?? null, howToTools: pageProps.markdoc?.frontmatter.howToTools ?? null, cli: pageProps.markdoc?.frontmatter.cli ?? null, + agentSkill: pageProps.markdoc?.frontmatter.agentSkill ?? null, } } @@ -259,4 +260,3 @@ function localizeProduct(product, locale) { return localizedProduct } - From e2bf0987e9e2e9eaef25ece95f55c53b2cfc97f1 Mon Sep 17 00:00:00 2001 From: Tony Boyle Date: Sat, 11 Apr 2026 12:41:15 +0100 Subject: [PATCH 2/4] docs: consolidate skill docs and add agentSkill to all Core pages - Replace per-page public skill docs with consolidated public/smart-contracts/core.md - Improve core.md with collection ambiguity routing, burn confirmation prompt, transfer setup step, two-place name update warning, off-chain metadata JSON standard, and updated CLI quick reference - Add agentSkill frontmatter to all 53 Core pages that were missing it --- public/agents.md | 673 ++++++++++++++++++ public/agents/create-agent-token.md | 90 --- public/agents/index.md | 64 -- public/agents/mint-agent.md | 88 --- public/agents/register-agent.md | 86 --- public/agents/run-agent.md | 61 -- public/agents/run-an-agent.md | 69 -- public/agents/skill.md | 31 - public/agents/skill/how-it-works.md | 42 -- public/agents/skill/installation.md | 51 -- .../agents/skill/programs-and-operations.md | 55 -- public/agents/what-is-an-agent.md | 33 - public/smart-contracts/core.md | 572 +++++++++++++++ public/smart-contracts/core/burn.md | 47 -- .../core/collections/create.md | 65 -- .../smart-contracts/core/collections/fetch.md | 45 -- public/smart-contracts/core/create-asset.md | 144 ---- .../core/execute-asset-signing.md | 64 -- public/smart-contracts/core/fetch.md | 62 -- public/smart-contracts/core/plugins.md | 75 -- public/smart-contracts/core/transfer.md | 45 -- public/smart-contracts/core/update.md | 49 -- public/smart-contracts/genesis.md | 438 ++++++++++++ .../genesis/bonding-curve-launch.md | 63 -- .../genesis/bonding-curve-swaps.md | 57 -- .../smart-contracts/genesis/bonding-curve.md | 52 -- .../genesis/getting-started.md | 58 -- public/smart-contracts/genesis/index.md | 57 -- .../genesis/integration-apis/create-launch.md | 42 -- .../genesis/integration-apis/register.md | 42 -- public/smart-contracts/genesis/launch-pool.md | 61 -- public/smart-contracts/genesis/presale.md | 60 -- .../smart-contracts/genesis/sdk/api-client.md | 41 -- src/pages/en/agents/create-agent-token.md | 2 +- src/pages/en/agents/index.md | 2 +- src/pages/en/agents/mint-agent.md | 2 +- src/pages/en/agents/register-agent.md | 2 +- src/pages/en/agents/run-agent.md | 2 +- src/pages/en/agents/run-an-agent.md | 2 +- src/pages/en/agents/skill/how-it-works.md | 1 - src/pages/en/agents/skill/index.md | 1 - src/pages/en/agents/skill/installation.md | 1 - .../agents/skill/programs-and-operations.md | 1 - src/pages/en/agents/what-is-an-agent.md | 2 +- src/pages/en/smart-contracts/core/burn.md | 2 +- .../en/smart-contracts/core/collections.md | 1 + .../core/collections/create.md | 2 +- .../smart-contracts/core/collections/fetch.md | 2 +- .../core/collections/update.md | 1 + .../en/smart-contracts/core/create-asset.md | 2 +- .../smart-contracts/core/deserialization.md | 1 + .../smart-contracts/core/ecosystem-support.md | 1 + .../core/execute-asset-signing.md | 2 +- .../adding-external-plugins.md | 1 + .../core/external-plugins/app-data.md | 1 + .../core/external-plugins/oracle.md | 1 + .../core/external-plugins/overview.md | 1 + .../removing-external-plugins.md | 1 + src/pages/en/smart-contracts/core/faq.md | 1 + src/pages/en/smart-contracts/core/fetch.md | 2 +- .../guides/anchor/anchor-staking-example.md | 1 + ...to-create-a-core-collection-with-anchor.md | 1 + ...-to-create-a-core-nft-asset-with-anchor.md | 1 + .../core/guides/create-soulbound-nft-asset.md | 1 + .../core/guides/immutability.md | 1 + .../en/smart-contracts/core/guides/index.md | 1 + ...reate-a-core-collection-with-javascript.md | 1 + ...create-a-core-nft-asset-with-javascript.md | 1 + .../web2-typescript-staking-example.md | 1 + .../core/guides/loyalty-card-concept-guide.md | 1 + .../guides/onchain-ticketing-with-appdata.md | 1 + .../core/guides/oracle-plugin-example.md | 1 + .../core/guides/print-editions.md | 1 + src/pages/en/smart-contracts/core/helpers.md | 1 + src/pages/en/smart-contracts/core/index.md | 1 + .../en/smart-contracts/core/json-schema.md | 1 + .../core/plugins/addBlocker.md | 1 + .../core/plugins/adding-plugins.md | 1 + .../smart-contracts/core/plugins/attribute.md | 1 + .../smart-contracts/core/plugins/autograph.md | 1 + .../smart-contracts/core/plugins/bubblegum.md | 1 + .../core/plugins/burn-delegate.md | 1 + .../delegating-and-revoking-plugins.md | 1 + .../smart-contracts/core/plugins/edition.md | 1 + .../core/plugins/freeze-delegate.md | 1 + .../core/plugins/freeze-execute.md | 1 + .../core/plugins/immutableMetadata.md | 1 + .../en/smart-contracts/core/plugins/index.md | 2 +- .../core/plugins/master-edition.md | 1 + .../core/plugins/permanent-burn-delegate.md | 1 + .../core/plugins/permanent-freeze-delegate.md | 1 + .../plugins/permanent-transfer-delegate.md | 1 + .../core/plugins/removing-plugins.md | 1 + .../smart-contracts/core/plugins/royalties.md | 1 + .../core/plugins/transfer-delegate.md | 1 + .../core/plugins/update-delegate.md | 1 + .../core/plugins/update-plugins.md | 1 + .../core/plugins/verified-creators.md | 1 + .../en/smart-contracts/core/sdk/index.md | 1 + .../en/smart-contracts/core/sdk/javascript.md | 1 + src/pages/en/smart-contracts/core/sdk/rust.md | 1 + .../en/smart-contracts/core/tm-differences.md | 1 + src/pages/en/smart-contracts/core/transfer.md | 2 +- src/pages/en/smart-contracts/core/update.md | 2 +- .../core/using-core-in-anchor.md | 1 + .../smart-contracts/core/what-is-an-asset.md | 1 + .../genesis/bonding-curve-launch.md | 2 +- .../genesis/bonding-curve-swaps.md | 2 +- .../smart-contracts/genesis/bonding-curve.md | 2 +- .../genesis/getting-started.md | 2 +- src/pages/en/smart-contracts/genesis/index.md | 2 +- .../genesis/integration-apis/create-launch.md | 2 +- .../genesis/integration-apis/register.md | 2 +- .../en/smart-contracts/genesis/launch-pool.md | 2 +- .../en/smart-contracts/genesis/presale.md | 2 +- .../smart-contracts/genesis/sdk/api-client.md | 2 +- tailwind.config.js | 13 + 117 files changed, 1775 insertions(+), 1829 deletions(-) create mode 100644 public/agents.md delete mode 100644 public/agents/create-agent-token.md delete mode 100644 public/agents/index.md delete mode 100644 public/agents/mint-agent.md delete mode 100644 public/agents/register-agent.md delete mode 100644 public/agents/run-agent.md delete mode 100644 public/agents/run-an-agent.md delete mode 100644 public/agents/skill.md delete mode 100644 public/agents/skill/how-it-works.md delete mode 100644 public/agents/skill/installation.md delete mode 100644 public/agents/skill/programs-and-operations.md delete mode 100644 public/agents/what-is-an-agent.md create mode 100644 public/smart-contracts/core.md delete mode 100644 public/smart-contracts/core/burn.md delete mode 100644 public/smart-contracts/core/collections/create.md delete mode 100644 public/smart-contracts/core/collections/fetch.md delete mode 100644 public/smart-contracts/core/create-asset.md delete mode 100644 public/smart-contracts/core/execute-asset-signing.md delete mode 100644 public/smart-contracts/core/fetch.md delete mode 100644 public/smart-contracts/core/plugins.md delete mode 100644 public/smart-contracts/core/transfer.md delete mode 100644 public/smart-contracts/core/update.md create mode 100644 public/smart-contracts/genesis.md delete mode 100644 public/smart-contracts/genesis/bonding-curve-launch.md delete mode 100644 public/smart-contracts/genesis/bonding-curve-swaps.md delete mode 100644 public/smart-contracts/genesis/bonding-curve.md delete mode 100644 public/smart-contracts/genesis/getting-started.md delete mode 100644 public/smart-contracts/genesis/index.md delete mode 100644 public/smart-contracts/genesis/integration-apis/create-launch.md delete mode 100644 public/smart-contracts/genesis/integration-apis/register.md delete mode 100644 public/smart-contracts/genesis/launch-pool.md delete mode 100644 public/smart-contracts/genesis/presale.md delete mode 100644 public/smart-contracts/genesis/sdk/api-client.md diff --git a/public/agents.md b/public/agents.md new file mode 100644 index 00000000..c0ba5c85 --- /dev/null +++ b/public/agents.md @@ -0,0 +1,673 @@ +# Metaplex Agents + +Use this file when the user asks about creating, registering, reading, running, or managing agents on Solana using the Metaplex Agent Registry. + +Human docs: https://metaplex.com/docs/agents + +## Agent Routing + +- **Prefer CLI** for operational tasks — an agent performing actions (registering, funding, launching, transferring) should use `mplx` commands. +- **Prefer SDK** when the user is building an app, backend, script, or reusable integration that needs to send transactions programmatically. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +--- + +## Common Questions + +Use this section to match what the user is asking to the right steps. For compound tasks, follow each step in order. + +--- + +**"I want to create / register an agent"** + +1. [Initial Setup](#initial-setup) — verify CLI, RPC, and wallet +2. [Register a New Agent](#register-a-new-agent) +3. [Activate the Agent Wallet](#activate-the-agent-wallet) — fund and switch to the agent PDA + +--- + +**"I want to create an agent with an agent token"** + +An agent token is a Genesis token launch permanently linked to the agent. Both can be created in a single command. + +1. [Initial Setup](#initial-setup) — verify CLI, RPC, and wallet +2. [Register a New Agent](#register-a-new-agent) — get your Asset Address +3. [Activate the Agent Wallet](#activate-the-agent-wallet) — fund and switch to the agent PDA +4. [Agent Token: Link a Genesis Token Launch to Your Agent](#agent-token-link-a-genesis-token-launch-to-your-agent-optional-irreversible) — use `mplx genesis launch create --agentMint --agentSetToken` to create the launch and link it in one command + +--- + +**"I want to check if my agent is registered"** + +1. [Read Agent Data](#read-agent-data) — run `mplx agents fetch ` + +--- + +**"I want another wallet to run transactions on behalf of my agent"** + +1. [Initial Setup](#initial-setup) — verify CLI, RPC, and wallet +2. [Register a New Agent](#register-a-new-agent) — if not already registered +3. [Activate the Agent Wallet](#activate-the-agent-wallet) +4. [Delegate Execution](#delegate-execution) — register the executor profile and delegate + +--- + +**"I want to launch a token as my agent"** (without linking it as the agent token) + +1. [Initial Setup](#initial-setup) +2. [Activate the Agent Wallet](#activate-the-agent-wallet) — the agent PDA will be the launch creator +3. [Launch a Token](#launch-a-token) under Agent Wallet Operations + +--- + +**"I want to create a regular SPL token"** + +This is not an agent token. Use `mplx toolbox token create` — see [Manage Tokens and SOL](#manage-tokens-and-sol). + +--- + +**"I want to transfer SOL or tokens as my agent"** + +1. [Activate the Agent Wallet](#activate-the-agent-wallet) — switch to the agent PDA first +2. [Manage Tokens and SOL](#manage-tokens-and-sol) + +--- + +## Initial Setup + +Before running any agent operation, verify the environment is ready. Work through each check in order and resolve any gaps before proceeding. + +### 1. Check CLI Installation + +```bash +mplx --version +``` + +If the command is not found, install it: + +```bash +npm install -g @metaplex-foundation/cli +``` + +Then verify: + +```bash +mplx --version +``` + +### 2. Configure RPC Endpoint + +```bash +mplx config rpcs list +``` + +If no RPC is configured, set one: + +```bash +# Devnet (testing) +mplx config rpcs set devnet + +# Mainnet (requires a custom RPC endpoint) +mplx config rpcs add mainnet +mplx config rpcs set mainnet +``` + +### 3. Configure Wallet + +```bash +mplx config wallets list +``` + +If no wallet is configured, create one: + +```bash +mplx config wallets new --name main +``` + +The CLI outputs the wallet's public key. Fund it with at least **0.1 SOL** to cover registration fees and transaction costs. Do not use the faucet on devnet — it is almost always drained. + +### 4. SDK Setup (for code paths) + +Install the required packages: + +```bash +npm install @metaplex-foundation/umi-bundle-defaults @metaplex-foundation/mpl-core @metaplex-foundation/mpl-agent-registry +``` + +Initialize Umi: + +```ts +import { createUmi } from '@metaplex-foundation/umi-bundle-defaults' +import { mplCore } from '@metaplex-foundation/mpl-core' +import pkg from '@metaplex-foundation/mpl-agent-registry' + +const { mplAgentIdentity, mplAgentTools } = pkg + +const umi = createUmi('https://api.mainnet-beta.solana.com') + .use(mplCore()) + .use(mplAgentIdentity()) + .use(mplAgentTools()) +``` + +The package ships as CommonJS. In ESM files, import the default export and destructure named exports from it. + +--- + +## What Is a Metaplex Agent + +A Metaplex agent is an **MPL Core asset** with an on-chain agent identity attached to it. + +- The **Core asset** is a lightweight single-account NFT on Solana. It stores the agent's name, description, and metadata URI. +- The **Agent Identity** is a PDA record and `AgentIdentity` plugin attached to the Core asset. It links the asset to an off-chain registration document (EIP-8004) that describes the agent's capabilities and services. +- The **Agent Wallet** (Asset Signer PDA) is a wallet address derived from the Core asset. It has no private key — outgoing actions use Core Execute through delegated execution. +- The **Executive** is an off-chain operator wallet authorized to execute transactions on behalf of the agent via Core Execute. +- The **Registration URI** points to a public JSON document describing the agent's type, services, and trust models. + +### Program IDs + +| Program | ID | +| -------------------- | ---------------------------------------------- | +| Agent Identity | `1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p` | +| Agent Tools | `TLREGni9ZEyGC3vnPZtqUh95xQ8oPqJSvNjvB7FGK8S` | + +--- + +## Operations + +### Register a New Agent + +Creates a new Core asset and registers agent identity in one flow. Use this when the user does not yet have a Core asset. + +**CLI:** + +```bash +mplx agents register --new \ + --name "My Agent" \ + --description "What my agent does" \ + --image "./avatar.png" \ + --services '[{"name":"MCP","endpoint":"https://myagent.com/mcp"}]' +``` + +Required flags: `--name`, `--description`, `--image`. + +Optional flags: + +| Flag | Description | +| ------------------- | -------------------------------------------------------------------------- | +| `--services` | JSON array of service endpoints (name, endpoint, version, skills, domains) | +| `--supported-trust` | JSON array of trust models, e.g. `'["reputation","tee-attestation"]'` | +| `--collection` | Collection address if this agent belongs to a collection | +| `--save-document` | Save the generated registration JSON to a local file | + +Interactive wizard: + +```bash +mplx agents register --new --wizard +``` + +From a pre-built JSON document: + +```bash +mplx agents register --new --from-file "./agent-registration.json" +``` + +`--wizard`, `--from-file`, and inline `--name` modes are mutually exclusive. + +After the command completes, the CLI outputs your **Asset Address**. Save it — every subsequent step (activating the agent wallet, linking a token, delegating execution) requires it. + +**SDK:** + +```ts +import pkg from '@metaplex-foundation/mpl-agent-registry' + +const { mintAndSubmitAgent } = pkg + +const { signature, assetAddress } = await mintAndSubmitAgent( + umi, + {}, + { + wallet: umi.identity.publicKey, + name: 'My Agent', + uri: 'https://example.com/core-asset.json', + agentMetadata: { + type: 'AI Agent', + name: 'My Agent', + description: 'What my agent does', + image: 'https://example.com/agent.png', + services: [{ type: 'MCP', endpoint: 'https://example.com/mcp' }], + supportedTrust: ['reputation'], + }, + network: 'solana-devnet', + } +) +``` + +Supported networks: `solana-mainnet`, `solana-devnet`, `localnet`, `eclipse-mainnet`, `sonic-mainnet`, `sonic-devnet`, `fogo-mainnet`, `fogo-testnet`. + +Use `mintAgent()` instead of `mintAndSubmitAgent()` to get the unsigned transaction for custom signing. Use `isAgentApiError`, `isAgentApiNetworkError`, and `isAgentValidationError` to classify failures. + +--- + +### Register on an Existing Core Asset + +Use when the user already has a Core asset and wants to attach an agent identity to it. + +**CLI:** + +```bash +# Direct instruction mode on an existing Core asset +mplx agents register --use-ix --from-file ./agent-doc.json +``` + +**SDK:** + +```ts +import { registerIdentityV1 } from '@metaplex-foundation/mpl-agent-registry' + +await registerIdentityV1(umi, { + asset: assetPublicKey, + collection: collectionPublicKey, // omit if no collection + agentRegistrationUri: 'https://example.com/agent-registration.json', +}).sendAndConfirm(umi) +``` + +Registration is one-time per asset. Attempting to register a second time fails. + +#### Registration Document Format (EIP-8004) + +The registration URI must point to a public JSON document: + +```json +{ + "type": "AI Agent", + "name": "Example Agent", + "description": "Autonomous agent description", + "image": "https://example.com/agent.png", + "services": [ + { "type": "MCP", "endpoint": "https://example.com/mcp" } + ], + "supportedTrust": ["reputation", "crypto-economic"] +} +``` + +Required fields: `type`, `name`, `description`, `image`. + +Common service types: `web`, `A2A`, `MCP`, `OASF`, `DID`, `email`, and custom names. + +Supported trust models: `reputation`, `crypto-economic`, `tee-attestation`. + +--- + +### Read Agent Data + +Use to verify a registration or read agent identity data. + +**CLI:** + +```bash +mplx agents fetch +mplx agents fetch --json +``` + +**SDK:** + +```ts +import { fetchAsset } from '@metaplex-foundation/mpl-core' +import { + findAgentIdentityV2Pda, + safeFetchAgentIdentityV2, + findAssetSignerPda, +} from '@metaplex-foundation/mpl-agent-registry' + +const [agentIdentityPda] = findAgentIdentityV2Pda(umi, { asset }) +const identity = await safeFetchAgentIdentityV2(umi, agentIdentityPda) +// identity is null if not registered + +const assetData = await fetchAsset(umi, asset) +const plugin = assetData.agentIdentities?.[0] + +const [agentWallet] = findAssetSignerPda(umi, { asset }) +``` + +Prefer V2 helpers for new reads. Fall back to `fetchAgentIdentityV1FromSeeds()` only for legacy identity accounts. + +#### PDA Reference + +| Account | Seeds | Size | +| ------------------------ | ------------------------------------------------------- | -------- | +| `AgentIdentityV2` | `["agent_identity", ]` | 104 bytes | +| `AgentIdentityV1` | `["agent_identity", ]` | 40 bytes | +| `Asset Signer PDA` | Derived via `findAssetSignerPda()` | — | + +--- + +### Activate the Agent Wallet + +After registering, register the agent's Signer PDA as a CLI wallet, fund it, and switch to it so all subsequent commands run as the agent. + +```bash +# Add the agent PDA as a wallet +mplx config wallets add agent --asset + +# Fund the PDA from your main wallet +mplx toolbox sol transfer 0.5 + +# Switch the active wallet to the agent PDA +mplx config wallets set agent +``` + +Verify: + +```bash +mplx toolbox sol balance +mplx core asset execute info +``` + +Override the active wallet for a single command: + +```bash +mplx toolbox sol balance -k /path/to/wallet.json +mplx toolbox sol transfer 0.01 -p /path/to/payer.json +``` + +--- + +### Delegate Execution + +Use when another wallet (e.g., a separate executor service) needs to submit transactions on behalf of the agent. + +**CLI:** + +```bash +# One-time: register the executor's profile +mplx agents executive register + +# Link the agent to the executor +mplx agents executive delegate --executive + +# Revoke delegation +mplx agents executive revoke --executive +mplx agents executive revoke # revoke all +``` + +**SDK:** + +```ts +import { + registerExecutiveV1, + delegateExecutionV1, + revokeExecutionV1, +} from '@metaplex-foundation/mpl-agent-registry' + +// Run with the executive wallet as signer +await registerExecutiveV1(umi, {}).sendAndConfirm(umi) + +// Run with the asset owner as signer +await delegateExecutionV1(umi, { + asset, + executive: executivePublicKey, +}).sendAndConfirm(umi) + +// Either the owner or executive can revoke +await revokeExecutionV1(umi, { + asset, + executive: executivePublicKey, +}).sendAndConfirm(umi) +``` + +The executive must register a profile before an agent can be delegated to it. Only the asset owner can delegate. Either the owner or executive can revoke. + +PDA seeds: +- `ExecutiveProfileV1`: `["executive_profile", ]` +- `ExecutionDelegateRecordV1`: `["execution_delegate_record", , ]` + +--- + +### Agent Token: Link a Genesis Token Launch to Your Agent (Optional, Irreversible) + +An **agent token** is not a token the agent creates or holds — it is a permanent, one-time link between the agent's identity and a specific **Genesis token launch account**. Once set, it cannot be changed or unset. + +This operation routes creator fees from that Genesis launch to the agent's Asset Signer PDA and associates the launch with the agent's on-chain identity. It is entirely optional and completely separate from agent registration. + +**Do not confuse this with:** +- Creating fungible tokens (`mplx toolbox token create`) — use that to mint a new SPL token. +- General agent wallet operations — the agent PDA can hold and transfer any token without this step. + +**Prerequisites:** a Genesis token launch must already exist (or be created in the same command) before this link can be made. + +**CLI — one-step (recommended):** + +`mplx genesis launch create` with `--agentMint` and `--agentSetToken` creates the Genesis token launch and links it to the agent in a single command — no separate `set-agent-token` call needed. + +```bash +mplx genesis launch create \ + --launchType bonding-curve \ + --name "My Token" \ + --symbol "MTKN" \ + --image "https://gateway.irys.xyz/" \ + --agentMint \ + --agentSetToken +``` + +**CLI — two-step (existing launch only):** + +Use `set-agent-token` only when the Genesis launch already exists and was not linked at creation time. + +Switch to asset-signer mode first: + +```bash +mplx config wallets add --name my-agent --type asset-signer --asset +mplx config wallets set my-agent +mplx agents set-agent-token +``` + +**SDK:** + +```ts +// Option A: create and link in one call +import { createAndRegisterLaunch } from '@metaplex-foundation/genesis' + +await createAndRegisterLaunch(umi, { + // ... launch params ... + agent: { + mint: agentAssetAddress, + setToken: true, + }, +}) + +// Option B: link to an existing Genesis account +import { setAgentTokenV1 } from '@metaplex-foundation/mpl-agent-registry' + +await setAgentTokenV1(umi, { + asset: agentAssetAddress, + genesisAccount, + authority: assetSignerPda, // must be the Asset Signer PDA +}).sendAndConfirm(umi) +``` + +--- + +## Agent Wallet Operations + +With the agent PDA set as the active wallet, all `mplx` commands execute as the agent: + +```bash +mplx toolbox sol balance # PDA balance +mplx toolbox sol transfer 0.01 # send SOL from PDA +mplx toolbox token transfer 100 # send tokens from PDA +mplx core asset create --name "NFT" --uri "..." # PDA is the creator +mplx core asset transfer # transfer PDA-owned assets +``` + +### Launch a Token + +Upload the image first (Irys requires a signing keypair): + +```bash +mplx toolbox storage upload ./token-image.png +# Returns: https://gateway.irys.xyz/ +``` + +**LaunchPool** — 48-hour deposit window, graduates to Raydium when the raise goal is met: + +```bash +mplx genesis launch create \ + --launchType launchpool \ + --name "My Token" \ + --symbol "MTKN" \ + --image "https://gateway.irys.xyz/" \ + --tokenAllocation 500000000 \ + --depositStartTime "2026-04-01T00:00:00Z" \ + --raiseGoal 250 \ + --raydiumLiquidityBps 5000 \ + --fundsRecipient +``` + +Required flags: `--name`, `--symbol`, `--image`, `--depositStartTime`, `--tokenAllocation`, `--raiseGoal`, `--raydiumLiquidityBps`, `--fundsRecipient`. + +`--raiseGoal` minimum: 250 SOL or 25,000 USDC. `--raydiumLiquidityBps` range: 2000–10000 (20%–100%). Set `--fundsRecipient` to the agent PDA so raised funds flow directly to the operational wallet. + +**Bonding Curve** — starts trading immediately, graduates to Raydium when the curve fills (~85 SOL): + +```bash +mplx genesis launch create \ + --launchType bonding-curve \ + --name "My Token" \ + --symbol "MTKN" \ + --image "https://gateway.irys.xyz/" +``` + +Optional: `--firstBuyAmount ` (max 85) to execute the first buy atomically at launch. + +Bonding curves only support SOL as the quote token. ~718M tokens are allocated to the curve; virtual reserves are ~464.6M tokens and 55 SOL. + +### Create an NFT Collection + +```bash +mplx core collection create --name "My Collection" --uri +mplx core asset create --name "NFT #1" --uri --collection + +# Or mint from local files (image + metadata uploaded automatically) +mplx core asset create --files --image ./image.png --offchain ./metadata.json --collection +``` + +For larger drops with allowlists, pricing, and start dates, use Candy Machine: + +```bash +mplx cm create --wizard +``` + +### Manage Tokens and SOL + +```bash +# Create a fungible token +mplx toolbox token create --name "My Token" --symbol "TKN" --decimals 9 --amount 1000000 + +# Transfer tokens +mplx toolbox token transfer 100 + +# Transfer SOL +mplx toolbox sol transfer 0.1 + +# Check balances +mplx toolbox sol balance +``` + +### Manage NFTs + +```bash +mplx core asset transfer +mplx core asset update --name "New Name" --uri +mplx core asset burn +``` + +--- + +## CLI Quick Reference + +```bash +# Setup +mplx config rpcs set devnet +mplx config rpcs add mainnet +mplx config wallets new --name main +mplx config wallets list + +# Agent identity +mplx agents register --new --name --description --image +mplx agents fetch +mplx agents set-agent-token + +# Agent wallet +mplx config wallets add agent --asset +mplx config wallets set agent + +# Executive delegation +mplx agents executive register +mplx agents executive delegate --executive +mplx agents executive revoke + +# Toolbox +mplx toolbox sol balance +mplx toolbox sol transfer +mplx toolbox token transfer +mplx toolbox storage upload +``` + +--- + +## Concepts + +### Main Wallet + +A standard Solana keypair that owns the agent's Core asset. It signs the execute instructions that authorize the PDA to act, and pays transaction fees. + +### Agent Wallet (Asset Signer PDA) + +Each Core asset has a derived **Asset Signer PDA** — a wallet address that only the asset's owner can authorize via CPI. When the asset-signer wallet is active in the CLI, all commands automatically build transactions with the PDA as the authority and wrap them in execute instructions signed by the main wallet. + +### mpl-core Asset + +A Metaplex Core asset is a lightweight, single-account NFT on Solana. It stores the agent's name, description, and metadata URI on-chain. Agent identity, delegation, and token linking all build on top of this. + +### Agent Identity PDA + +The `AgentIdentityV1` / `AgentIdentityV2` account is a PDA created by the `mpl-agent-registry` program. It links the Core asset to the `agentRegistrationUri`, making the agent's identity discoverable on-chain. + +### EIP-8004 + +The [EIP-8004 Agent Registration](https://eips.ethereum.org/EIPS/eip-8004) standard defines a common JSON format for describing agent capabilities, services, and trust mechanisms. The registration URI must point to a document following this spec for interoperability with other agents and platforms. + +--- + +## Notes + +- If a Genesis API call reports the agent is not owned by the connected wallet immediately after registration, the on-chain write may still be propagating. Run `mplx agents fetch ` and wait ~30 seconds before retrying. +- "Agent token" specifically means a Genesis launch account linked to the agent identity — not any token the agent holds or creates. Setting it (`--agentSetToken` / `setAgentTokenV1`) is a one-time, irreversible operation. +- `--wizard`, `--from-file`, and inline `--name` registration modes are mutually exclusive. +- Asset owner must already be a saved wallet before adding an asset-signer wallet with `mplx config wallets add`. +- Bubblegum compressed NFT reads require a DAS-enabled RPC endpoint. +- Candy Machine CLI handles setup and item insertion; minting requires the SDK. + +--- + +## Troubleshooting + +| Problem | Solution | +| --------------------------------------- | ------------------------------------------------------------------------------------- | +| `mplx: command not found` | Run `npm install -g @metaplex-foundation/cli` | +| Transaction failed — insufficient funds | Ensure the main wallet has enough SOL (0.1+ recommended) | +| Agent not appearing in registry | Wait ~30 seconds for on-chain confirmation, then retry `mplx agents fetch` | +| Asset owner not in wallets | Add the asset owner wallet first before running `mplx config wallets add agent` | +| Named imports fail for SDK package | Package is CommonJS — import the default export and destructure named exports from it | + +--- + +## Further Reading + +| Resource | Link | +| ----------------------------- | ----------------------------------------------------------------------------- | +| Metaplex Skill (full CLI + SDK refs) | [github.com/metaplex-foundation/skill](https://github.com/metaplex-foundation/skill) | +| Metaplex Docs | [metaplex.com/docs](https://metaplex.com/docs) | +| Core (NFT standard) | [metaplex.com/docs/smart-contracts/core](https://metaplex.com/docs/smart-contracts/core) | +| Genesis (token launches) | [metaplex.com/docs/smart-contracts/genesis](https://metaplex.com/docs/smart-contracts/genesis) | +| Candy Machine (NFT drops) | [metaplex.com/docs/smart-contracts/core-candy-machine](https://metaplex.com/docs/smart-contracts/core-candy-machine) | diff --git a/public/agents/create-agent-token.md b/public/agents/create-agent-token.md deleted file mode 100644 index b6f186bb..00000000 --- a/public/agents/create-agent-token.md +++ /dev/null @@ -1,90 +0,0 @@ -# Metaplex Agents: Create Agent Token - -Use this agent page when the user wants to launch a Genesis token on behalf of a registered Metaplex agent. - -Human page: https://metaplex.com/docs/agents/create-agent-token - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user wants a token linked to an agent identity. -- The user wants creator fees routed to the agent Asset Signer PDA. -- The user wants to use Genesis `createAndRegisterLaunch()` with the `agent` field. - -## SDK/API Function - -Use `createAndRegisterLaunch()` from `@metaplex-foundation/genesis` with: - -```ts -agent: { - mint: agentAssetAddress, - setToken: true, -} -``` - -Notes: - -- `setToken: true` is irreversible. -- Creator fees route to the agent's Asset Signer PDA unless explicitly overridden. -- The first buy buyer defaults to the agent PDA when `agent` is provided. - -For an existing Genesis account, use `setAgentTokenV1()` from `@metaplex-foundation/mpl-agent-registry`. - -```ts -import { setAgentTokenV1 } from '@metaplex-foundation/mpl-agent-registry' - -await setAgentTokenV1(umi, { - asset: agentAssetAddress, - genesisAccount, - authority: assetSignerPda, -}).sendAndConfirm(umi) -``` - -When using the SDK directly, `authority` must be the Asset Signer PDA and should be provided explicitly. The SDK can derive the agent identity if omitted. The agent token can only be set once; repeated attempts fail with `AgentTokenAlreadySet`. - -## CLI Quick Reference - -```bash -# Recommended one-step launch and link. -mplx genesis launch create --launchType bonding-curve \ - --name \ - --symbol \ - --image \ - --agentMint \ - --agentSetToken - -# Two-step link after a launch already exists. -mplx agents set-agent-token -``` - -For the two-step CLI link, switch the CLI wallet to asset-signer mode for the agent asset before running the command: - -```bash -mplx config wallets add --name my-agent --type asset-signer --asset -mplx config wallets set my-agent -mplx agents set-agent-token -``` - -Full CLI docs: /docs/dev-tools/cli/agents/set-agent-token - -## Notes - -- `--agentSetToken` is irreversible. -- If a launch immediately after registration reports that the agent is not owned by the connected wallet, verify with `mplx agents fetch ` and wait about 30 seconds before retrying. RPC propagation can lag behind a successful on-chain registration. - -## Related Pages - -- Register an agent first: /docs/agents/register-agent.md -- Genesis bonding curve launch: /docs/smart-contracts/genesis/bonding-curve-launch.md -- Agent token CLI docs: /docs/dev-tools/cli/agents/set-agent-token diff --git a/public/agents/index.md b/public/agents/index.md deleted file mode 100644 index 309174e3..00000000 --- a/public/agents/index.md +++ /dev/null @@ -1,64 +0,0 @@ -# Metaplex Agent Kit - -Use this agent page when the user asks about creating, registering, reading, running, or tokenizing agents on Solana. - -Human page: https://metaplex.com/docs/agents - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## Route To Task Pages - -- What is an Agent: /docs/agents/what-is-an-agent.md -- Mint an Agent: /docs/agents/mint-agent.md -- Register an Agent on an existing Core asset: /docs/agents/register-agent.md -- Read Agent Data: /docs/agents/run-agent.md -- Run an Agent with executive delegation: /docs/agents/run-an-agent.md -- Create an Agent Token: /docs/agents/create-agent-token.md -- Agent Skill overview: /docs/agents/skill.md - -## SDK Setup - -Install `@metaplex-foundation/mpl-agent-registry`. The package ships as CommonJS; in ESM files import the default package and destructure exports if named imports do not work. - -```ts -import { createUmi } from '@metaplex-foundation/umi-bundle-defaults' -import { mplCore } from '@metaplex-foundation/mpl-core' -import pkg from '@metaplex-foundation/mpl-agent-registry' - -const { mplAgentIdentity, mplAgentTools } = pkg - -const umi = createUmi('https://api.mainnet-beta.solana.com') - .use(mplCore()) - .use(mplAgentIdentity()) - .use(mplAgentTools()) -``` - -## CLI Quick Reference - -```bash -mplx agents register --name --description --image -mplx agents fetch -mplx agents set-agent-token -mplx agents executive register -mplx agents executive delegate --executive -mplx agents executive revoke -``` - -Full CLI docs: /docs/dev-tools/cli/agents - -## Reference Notes - -- Agent registration service types include `web`, `A2A`, `MCP`, `OASF`, `DID`, `email`, and custom service names. -- Supported trust models include `reputation`, `crypto-economic`, and `tee-attestation`. -- The Agent Identity program ID is `1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p`. -- The Agent Tools program ID is `TLREGni9ZEyGC3vnPZtqUh95xQ8oPqJSvNjvB7FGK8S`. diff --git a/public/agents/mint-agent.md b/public/agents/mint-agent.md deleted file mode 100644 index 7e840d45..00000000 --- a/public/agents/mint-agent.md +++ /dev/null @@ -1,88 +0,0 @@ -# Metaplex Agents: Mint Agent - -Use this agent page when the user wants to create a new agent in one API-backed flow. - -Human page: https://metaplex.com/docs/agents/mint-agent - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user wants to create a new Core asset and register the agent identity in one transaction. -- The user wants to use the Metaplex hosted Agent API. -- The user does not already have a Core asset to register. - -## SDK/API Functions - -- `mintAndSubmitAgent()` calls the Metaplex API, signs the returned transaction with Umi, and submits it. -- `mintAgent()` returns the unsigned transaction for manual signing or custom transaction sending. -- Pass API config as the second argument when needed: `{ baseUrl, fetch }`. -- Use `isAgentApiError`, `isAgentApiNetworkError`, and `isAgentValidationError` to classify API or validation failures. - -## Required Inputs - -- `wallet`: wallet public key. -- `name`: agent name. -- `uri`: public Core asset metadata JSON URI. -- `agentMetadata`: off-chain agent metadata stored by the Metaplex API. -- `network`: optional network such as `solana-mainnet` or `solana-devnet`. - -## SDK Example - -```ts -import pkg from '@metaplex-foundation/mpl-agent-registry' - -const { mintAndSubmitAgent } = pkg - -const { signature, assetAddress } = await mintAndSubmitAgent( - umi, - {}, - { - wallet: umi.identity.publicKey, - name: 'Example Agent', - uri: 'https://example.com/core-asset.json', - agentMetadata: { - type: 'AI Agent', - name: 'Example Agent', - description: 'Agent registration metadata', - image: 'https://example.com/agent.png', - services: [ - { type: 'MCP', endpoint: 'https://example.com/mcp' }, - ], - supportedTrust: ['reputation'], - }, - network: 'solana-devnet', - } -) -``` - -Supported API networks: `solana-mainnet`, `solana-devnet`, `localnet`, `eclipse-mainnet`, `sonic-mainnet`, `sonic-devnet`, `fogo-mainnet`, and `fogo-testnet`. - -## CLI Quick Reference - -```bash -mplx agents register \ - --name \ - --description \ - --image \ - --services '[{"name":"MCP","endpoint":"https://example.com/mcp"}]' \ - --supported-trust '["reputation","crypto-economic"]' -``` - -Full CLI docs: /docs/dev-tools/cli/agents/register - -## Related Pages - -- Register an existing Core asset: /docs/agents/register-agent.md -- Read agent data: /docs/agents/run-agent.md -- Create an agent token: /docs/agents/create-agent-token.md diff --git a/public/agents/register-agent.md b/public/agents/register-agent.md deleted file mode 100644 index 39b83b41..00000000 --- a/public/agents/register-agent.md +++ /dev/null @@ -1,86 +0,0 @@ -# Metaplex Agents: Register Agent - -Use this agent page when the user wants to attach an agent identity to an existing MPL Core asset. - -Human page: https://metaplex.com/docs/agents/register-agent - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user already has an MPL Core asset and wants to bind an agent identity to it. -- The user wants the `registerIdentityV1` instruction. -- The user needs to provide an ERC-8004-style registration document URI. - -## SDK Function - -```ts -import { registerIdentityV1 } from '@metaplex-foundation/mpl-agent-registry' - -await registerIdentityV1(umi, { - asset: assetPublicKey, - collection: collectionPublicKey, - agentRegistrationUri: 'https://example.com/agent-registration.json', -}).sendAndConfirm(umi) -``` - -Registration is one-time per asset. Use this path when a Core asset already exists; use `/docs/agents/mint-agent.md` when the user wants the API to create the Core asset and agent identity together. - -## Registration Document - -The registration document is an ERC-8004-style JSON document. Required fields are `type`, `name`, `description`, and `image`. Optional fields include `services`, `active`, `registrations`, and `supportedTrust`. - -Common service types are `web`, `A2A`, `MCP`, `OASF`, `DID`, `email`, and custom service names. Supported trust models include `reputation`, `crypto-economic`, and `tee-attestation`. - -```json -{ - "type": "AI Agent", - "name": "Example Agent", - "description": "Autonomous agent description", - "image": "https://example.com/agent.png", - "services": [ - { "type": "MCP", "endpoint": "https://example.com/mcp" } - ], - "supportedTrust": ["reputation", "crypto-economic"] -} -``` - -## CLI Quick Reference - -```bash -# Default API mode creates a Core asset and registers identity. -mplx agents register --name --description --image - -# Direct instruction mode on an existing Core asset. -mplx agents register --use-ix --from-file ./agent-doc.json - -# Direct instruction mode with a new Core asset. -mplx agents register --new --use-ix --name --description --image - -# Interactive mode. -mplx agents register --new --wizard -``` - -Full CLI docs: /docs/dev-tools/cli/agents/register - -## Notes - -- CLI `--wizard`, `--from-file`, and inline `--name` registration modes are mutually exclusive. -- In API mode, the CLI detects the network from the configured RPC endpoint. -- If a follow-up Genesis API call says the agent is not owned by the connected wallet immediately after registration, the on-chain registration may still have succeeded. Check `mplx agents fetch ` and wait about 30 seconds before retrying the launch. - -## Related Pages - -- Mint an agent in one API flow: /docs/agents/mint-agent.md -- Read agent data: /docs/agents/run-agent.md -- Create a Core asset first: /docs/smart-contracts/core/create-asset.md diff --git a/public/agents/run-agent.md b/public/agents/run-agent.md deleted file mode 100644 index f631a777..00000000 --- a/public/agents/run-agent.md +++ /dev/null @@ -1,61 +0,0 @@ -# Metaplex Agents: Read Agent Data - -Use this agent page when the user wants to verify an agent registration or read agent identity data. - -Human page: https://metaplex.com/docs/agents/run-agent - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## SDK Functions - -- `findAgentIdentityV2Pda()` derives the current agent identity PDA from the asset address. -- `safeFetchAgentIdentityV2()` returns the identity account or `null` if not registered. -- `fetchAgentIdentityV1FromSeeds()` fetches directly from the asset seed. -- `fetchAsset()` reads the Core asset and attached `AgentIdentity` plugin. -- `findAssetSignerPda()` derives the agent wallet PDA. - -V1 fetchers still work for legacy identity accounts. Prefer V2 helpers for new reads, then fall back to V1 only when working with older data. - -```ts -import { fetchAsset } from '@metaplex-foundation/mpl-core' -import { - findAgentIdentityV2Pda, - safeFetchAgentIdentityV2, -} from '@metaplex-foundation/mpl-agent-registry' - -const [agentIdentity] = findAgentIdentityV2Pda(umi, { asset }) -const identity = await safeFetchAgentIdentityV2(umi, agentIdentity) -const assetData = await fetchAsset(umi, asset) -const plugin = assetData.agentIdentities?.[0] -``` - -## CLI Quick Reference - -```bash -mplx agents fetch -mplx agents fetch --json -``` - -Full CLI docs: /docs/dev-tools/cli/agents/fetch - -## PDA Reference - -- `AgentIdentityV2`: seeds `["agent_identity", ]`, account size 104 bytes. -- `AgentIdentityV1`: same seeds, legacy account size 40 bytes. -- Asset Signer PDA: use `findAssetSignerPda()` when deriving the agent wallet. - -## Related Pages - -- Register an agent: /docs/agents/register-agent.md -- Run an agent with executive delegation: /docs/agents/run-an-agent.md -- Core Execute and Asset Signer: /docs/smart-contracts/core/execute-asset-signing.md diff --git a/public/agents/run-an-agent.md b/public/agents/run-an-agent.md deleted file mode 100644 index f602cd1f..00000000 --- a/public/agents/run-an-agent.md +++ /dev/null @@ -1,69 +0,0 @@ -# Metaplex Agents: Run An Agent - -Use this agent page when the user wants to set up executive delegation so an off-chain operator can run an agent. - -Human page: https://metaplex.com/docs/agents/run-an-agent - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## SDK Functions - -- `registerExecutiveV1()` creates the executive profile for a wallet. -- `delegateExecutionV1()` delegates an agent asset to an executive profile. -- `revokeExecutionV1()` revokes a delegated execution relationship. -- `findExecutiveProfileV1Pda()` derives the executive profile PDA. -- `findExecutionDelegateRecordV1Pda()` derives the delegation record PDA. - -```ts -import { - delegateExecutionV1, - registerExecutiveV1, - revokeExecutionV1, -} from '@metaplex-foundation/mpl-agent-registry' - -await registerExecutiveV1(umi, {}).sendAndConfirm(umi) - -await delegateExecutionV1(umi, { - asset, - executive: executivePublicKey, -}).sendAndConfirm(umi) - -await revokeExecutionV1(umi, { - asset, - executive: executivePublicKey, -}).sendAndConfirm(umi) -``` - -## CLI Quick Reference - -```bash -mplx agents executive register -mplx agents executive delegate --executive -mplx agents executive revoke --executive -mplx agents executive revoke -``` - -Full CLI docs: /docs/dev-tools/cli/agents/executive - -## Notes - -- The executive must register a profile before an agent can be delegated to it. -- Only the asset owner can delegate execution. -- Either the owner or executive can revoke a delegation. -- `ExecutiveProfileV1` PDA seeds: `["executive_profile", ]`. -- `ExecutionDelegateRecordV1` PDA seeds: `["execution_delegate_record", , ]`. - -## Related Pages - -- Read agent data first: /docs/agents/run-agent.md -- Core Execute and Asset Signer: /docs/smart-contracts/core/execute-asset-signing.md diff --git a/public/agents/skill.md b/public/agents/skill.md deleted file mode 100644 index b3f345aa..00000000 --- a/public/agents/skill.md +++ /dev/null @@ -1,31 +0,0 @@ -# Metaplex Skill - -Use this agent page when the user asks how to give an AI coding agent Metaplex protocol knowledge. - -Human page: https://metaplex.com/docs/agents/skill - -## Agent Routing - -- Use this page for agent skill installation, agent documentation architecture, and Metaplex Skill concepts. -- For protocol implementation tasks, route to the product-specific agent pages, such as /docs/smart-contracts/core/create-asset.md or /docs/smart-contracts/genesis/launch-pool.md. -- For terminal operations, use CLI quick references on the relevant product page. - -## Environment Prerequisites - -- Installing a Skill requires an AI coding agent/runtime that supports Agent Skills or can read local instruction files. -- `npx skills add metaplex-foundation/skill` requires Node.js and npm/npx. -- If the user only wants to read docs, do not assume local skill installation is available. - -## Install - -```bash -npx skills add metaplex-foundation/skill -``` - -Manual installation copies the Skill files from https://github.com/metaplex-foundation/skill into the agent's skill directory. - -## Related Pages - -- Skill installation: /docs/agents/skill/installation.md -- How it works: /docs/agents/skill/how-it-works.md -- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/how-it-works.md b/public/agents/skill/how-it-works.md deleted file mode 100644 index 2a52f058..00000000 --- a/public/agents/skill/how-it-works.md +++ /dev/null @@ -1,42 +0,0 @@ -# Metaplex Skill: How It Works - -Use this agent page when the user asks how the Metaplex Skill routes AI agents to the right references. - -Human page: https://metaplex.com/docs/agents/skill/how-it-works - -## Agent Routing - -- Read `SKILL.md` first as the lightweight router. -- Load only the reference files needed for the current task. -- For Agent Registry tasks, use `cli-agent.md` for terminal workflows and `sdk-agent.md` for Umi SDK workflows. -- For Genesis token launch tasks, use `cli-genesis.md` or `sdk-genesis.md`. -- For Core NFT and Asset Signer tasks, use `cli-core.md` or `sdk-core.md`. - -## Architecture - -- `SKILL.md`: high-level tool selection and task router. -- CLI references: command syntax, setup expectations, operational notes. -- SDK references: package setup, Umi plugins, function names, account/PDA details, error helpers. -- Concepts references: shared account structures, PDAs, program IDs, and metadata JSON formats. - -## Agent Registry Reference Map - -- CLI agent identity, delegation, revocation, and token linking: `references/cli-agent.md`. -- SDK agent identity, minting, reading, delegation, and token linking: `references/sdk-agent.md`. -- Core asset creation and Asset Signer execution: `references/cli-core.md` or `references/sdk-core.md`. -- Agent token launch and bonding curve integration: `references/cli-genesis.md` or `references/sdk-genesis.md`. - -## Progressive Disclosure Rule - -Do not load every reference up front. Select the smallest useful set: - -- Terminal one-off: CLI setup reference plus the relevant program CLI reference. -- App/backend/script: Umi setup reference plus the relevant program SDK reference. -- Metadata question: metadata reference plus the relevant program reference. -- Account/PDA question: concepts reference plus the relevant program reference. - -## Related Pages - -- Skill overview: /docs/agents/skill.md -- Installation: /docs/agents/skill/installation.md -- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/installation.md b/public/agents/skill/installation.md deleted file mode 100644 index 125c3a76..00000000 --- a/public/agents/skill/installation.md +++ /dev/null @@ -1,51 +0,0 @@ -# Metaplex Skill: Installation - -Use this agent page when the user wants to install the Metaplex Skill in an AI coding agent. - -Human page: https://metaplex.com/docs/agents/skill/installation - -## Agent Routing - -- Use the one-command install when the user has Node.js and npm/npx available. -- Use manual installation only when the target agent does not support the installer or the user asks for manual setup. -- If the user asks for protocol implementation help after installing, route to the product-specific `.md` page. - -## Install - -```bash -npx skills add metaplex-foundation/skill -``` - -This requires Node.js and npm/npx. - -## Manual Claude Code Install - -Project-scoped: - -```bash -mkdir -p .claude/skills/metaplex -``` - -Global: - -```bash -mkdir -p ~/.claude/skills/metaplex -``` - -Then copy the contents of `skills/metaplex/` from https://github.com/metaplex-foundation/skill into the chosen `metaplex` skill directory. - -## Verify - -Ask the agent for a concrete Metaplex task, such as: - -- Launch a token with Genesis. -- Create a Core NFT collection on devnet. -- Mint a compressed NFT to a Merkle tree. - -If the Skill is loaded, the agent should route to the relevant CLI or SDK reference instead of guessing flags or APIs. - -## Related Pages - -- Skill overview: /docs/agents/skill.md -- How it works: /docs/agents/skill/how-it-works.md -- Programs and operations: /docs/agents/skill/programs-and-operations.md diff --git a/public/agents/skill/programs-and-operations.md b/public/agents/skill/programs-and-operations.md deleted file mode 100644 index 5b924f2a..00000000 --- a/public/agents/skill/programs-and-operations.md +++ /dev/null @@ -1,55 +0,0 @@ -# Metaplex Skill: Programs And Operations - -Use this agent page when the user asks which Metaplex program, CLI command group, or SDK package to use for a task. - -Human page: https://metaplex.com/docs/agents/skill/programs-and-operations - -## Tool Preference - -- Prefer SDK/API when the user is building an app, backend, automation, or reusable integration. -- Prefer CLI when the user wants a terminal command, manual setup, debugging, or one-off verification. -- For coding agents such as OpenClaw, use the same preference: SDK/API for code generation, CLI for operational tasks. - -## Programs - -- Agent Registry: on-chain agent identity, agent wallets, executive delegation, and Genesis token linking. -- Genesis: token launch pools, bonding curves, first buy, creator fees, swaps, and Raydium graduation. -- Core: modern NFTs and collections with plugins, lifecycle hooks, and Asset Signer execution. -- Token Metadata: legacy NFTs, pNFTs, editions, and fungible token metadata. -- Bubblegum: compressed NFTs using Merkle trees and DAS-enabled RPC. -- Candy Machine: NFT drop setup and minting guards. - -## Agent Registry - -- CLI group: `mplx agents`. -- SDK package: `@metaplex-foundation/mpl-agent-registry`. -- Main tasks: `register`, `fetch`, `executive register`, `executive delegate`, `executive revoke`, `set-agent-token`. -- SDK functions include `mintAndSubmitAgent`, `mintAgent`, `registerIdentityV1`, `safeFetchAgentIdentityV2`, `setAgentTokenV1`, `registerExecutiveV1`, `delegateExecutionV1`, and `revokeExecutionV1`. - -## Genesis - -- CLI group: `mplx genesis`. -- SDK package: `@metaplex-foundation/genesis`. -- Use for launchpool or bonding curve token launches. -- Use `createAndRegisterLaunch()` for app/backend integrations. -- Use `mplx genesis launch create --agentMint --agentSetToken` when launching and linking an agent token from the CLI. - -## Core - -- CLI group: `mplx core`. -- SDK package: `@metaplex-foundation/mpl-core`. -- Use for Core asset and collection creation, update, transfer, burn, plugins, and Asset Signer execution. -- Agent Registry builds on Core because each agent is a Core asset with an Asset Signer PDA. - -## Notes - -- Bubblegum compressed NFT reads require a DAS-enabled RPC endpoint. -- Candy Machine CLI handles setup/configuration/item insertion; minting requires the SDK. -- Kit SDK support is limited to Token Metadata. -- Setting an agent token is irreversible and requires asset-signer authority for the agent asset. - -## Related Pages - -- Agent Registry overview: /docs/agents/index.md -- Genesis overview: /docs/smart-contracts/genesis/index.md -- Core create asset: /docs/smart-contracts/core/create-asset.md diff --git a/public/agents/what-is-an-agent.md b/public/agents/what-is-an-agent.md deleted file mode 100644 index 06472e72..00000000 --- a/public/agents/what-is-an-agent.md +++ /dev/null @@ -1,33 +0,0 @@ -# Metaplex Agents: What Is An Agent - -Use this agent page when the user asks for the conceptual model of Metaplex agents. - -Human page: https://metaplex.com/docs/agents/what-is-an-agent - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## Core Concepts - -- A Metaplex agent is an MPL Core asset with an on-chain agent identity. -- The agent identity is a PDA record and `AgentIdentity` plugin attached to the Core asset. -- The agent wallet is the Core asset's Asset Signer PDA. -- Since there is no private key for the Asset Signer PDA, outgoing actions use Core Execute through delegated execution. -- An executive is an off-chain operator wallet authorized to execute on behalf of the agent. - -## Route To Task Pages - -- Mint a new agent with API flow: /docs/agents/mint-agent.md -- Register an existing Core asset as an agent: /docs/agents/register-agent.md -- Read agent identity data: /docs/agents/run-agent.md -- Delegate execution: /docs/agents/run-an-agent.md -- Create an agent token: /docs/agents/create-agent-token.md diff --git a/public/smart-contracts/core.md b/public/smart-contracts/core.md new file mode 100644 index 00000000..a3b992a9 --- /dev/null +++ b/public/smart-contracts/core.md @@ -0,0 +1,572 @@ +# Metaplex Core + +Use this file when the user asks about creating, reading, updating, transferring, or burning Metaplex Core Assets or Collections on Solana. + +Human docs: https://metaplex.com/docs/smart-contracts/core + +## Agent Routing + +- **Prefer CLI** for operational tasks — an agent creating, transferring, or burning assets should use `mplx` commands. +- **Prefer SDK** when the user is building an app, backend, script, or reusable integration that needs to send transactions programmatically. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +--- + +## Common Questions + +Use this section to match what the user is asking to the right steps. + +--- + +**"I want to create an NFT"** + +1. [Initial Setup](#initial-setup) — verify CLI, RPC, and wallet +2. [Create an Asset](#create-an-asset) + +--- + +**"I want to create an NFT collection and mint into it"** + +1. [Initial Setup](#initial-setup) +2. [Create a Collection](#create-a-collection) — get your Collection Address +3. [Create an Asset](#create-an-asset) — pass `--collection ` + +--- + +**"If the user's request is ambiguous about collections"** + +- If the user says "new collection" or implies one should be created, follow the [Create a Collection](#create-a-collection) → [Create an Asset](#create-an-asset) flow. +- If the user does not mention a collection **and** does not provide a collection address, ask before proceeding: + *"Should this NFT be part of a collection? If so, do you have an existing collection address, or should I create a new one?"* + +--- + +**"I want to create an NFT with royalties"** + +1. [Initial Setup](#initial-setup) +2. [Create an Asset with Plugins](#create-an-asset-with-plugins) — use the Royalties plugin + +--- + +**"I want to transfer an NFT to another wallet"** + +1. [Initial Setup](#initial-setup) — confirm the correct wallet is active (only the owner or Transfer Delegate can transfer) +2. [Transfer an Asset](#transfer-an-asset) + +--- + +**"I want to update an NFT's name or image"** + +1. [Update an Asset](#update-an-asset) + +> **Note:** Updating a name requires changes in two places — the on-chain field (`--name`) and the off-chain metadata JSON (`--uri`). Both must be updated together. See the [Update an Asset](#update-an-asset) section for the full steps. + +--- + +**"I want to burn an NFT"** + +1. [Burn an Asset](#burn-an-asset) + +--- + +**"I want to use a Core asset as a wallet / agent wallet"** + +A Core asset has a derived Asset Signer PDA that can hold SOL and tokens and sign transactions via Core Execute. + +1. [Initial Setup](#initial-setup) +2. [Execute / Asset Signer PDA](#execute--asset-signer-pda) + +--- + +**"I want to read/inspect an asset or collection"** + +1. [Fetch an Asset or Collection](#fetch-an-asset-or-collection) + +--- + +## Initial Setup + +Before running any Core operation, verify the environment is ready. + +### 1. Check CLI Installation + +```bash +mplx --version +``` + +If the command is not found, install it: + +```bash +npm install -g @metaplex-foundation/cli +``` + +### 2. Configure RPC Endpoint + +```bash +mplx config rpcs list +``` + +If no RPC is configured, set one: + +```bash +# Devnet (testing) +mplx config rpcs set devnet + +# Mainnet (requires a custom RPC endpoint) +mplx config rpcs add mainnet +mplx config rpcs set mainnet +``` + +### 3. Configure Wallet + +```bash +mplx config wallets list +``` + +If no wallet is configured, create one: + +```bash +mplx config wallets new --name main +``` + +Fund the wallet with enough SOL to cover rent and transaction fees. + +### 4. SDK Setup (for code paths) + +```bash +npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi-bundle-defaults +``` + +```ts +import { createUmi } from '@metaplex-foundation/umi-bundle-defaults' +import { mplCore } from '@metaplex-foundation/mpl-core' + +const umi = createUmi('https://api.mainnet-beta.solana.com').use(mplCore()) +``` + +--- + +## What Is a Metaplex Core Asset + +A Core Asset is a **single on-chain account** that stores ownership, metadata URI, and plugin data. It is Metaplex's modern NFT standard — lighter and more flexible than Token Metadata. + +- Each asset requires a fresh keypair at creation time. Do not reuse an existing asset address. +- Metadata JSON should be uploaded first and referenced by URI. +- Collections are separate Core accounts — not Token Metadata collections. +- Plugins add behavior (royalties, freeze, burn delegation, etc.) at the asset or collection level. + +**Program ID:** `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d` + +--- + +## Off-Chain Metadata JSON + +All Core Assets reference an off-chain metadata JSON file via their URI. This file must follow the Metaplex metadata standard. + +### NFT Metadata JSON + +```json +{ + "name": "Asset Name", + "description": "Description of the asset", + "image": "https://...", + "external_url": "https://yourproject.com", + "animation_url": "https://...", + "attributes": [ + { + "trait_type": "Background", + "value": "Blue" + }, + { + "trait_type": "Rarity", + "value": "Legendary" + } + ], + "properties": { + "files": [ + { + "uri": "https://...", + "type": "image/png" + } + ], + "category": "image" + } +} +``` + +**Required:** `name`, `image`, `properties` +**Optional:** `description`, `external_url`, `animation_url`, `attributes` + +> **Note:** While `external_url` and `attributes` are optional, including them is strongly recommended — wallets and marketplaces rely on them for display and indexing. +> +> **Collections:** When creating a collection's metadata JSON, omit `attributes` — traits belong to individual assets, not the collection itself. + +**Categories:** `image`, `video`, `audio`, `vr`, `html` + +**`properties.files` ordering convention:** +- **Index 0** — always the image file, matching the top-level `image` field +- **Index 1** — the `animation_url` file, if present — can be any rich media type: video, audio, HTML, 3D model, etc. +- **Index 2+** — any additional files + +> **Using `--files` with the CLI:** When creating an asset from local files, the `image` field in your metadata JSON can be left as a placeholder (e.g. `"image": ""`). The CLI will upload the image first, then automatically inject the resulting URL into the metadata before uploading it. + +--- + +## Operations + +### Create an Asset + +**CLI:** + +```bash +# Basic create +mplx core asset create --name --uri + +# Mint to a specific owner +mplx core asset create --name --uri --owner + +# Mint into a collection +mplx core asset create --name --uri --collection + +# Create from local files (uploads image and metadata automatically) +mplx core asset create --files --image ./image.png --offchain ./metadata.json + +# Generate template files +mplx core asset template +``` + +**SDK:** + +```ts +import { generateSigner } from '@metaplex-foundation/umi' +import { create } from '@metaplex-foundation/mpl-core' + +const asset = generateSigner(umi) + +await create(umi, { + asset, + name: 'My NFT', + uri: 'https://example.com/metadata.json', +}).sendAndConfirm(umi) +``` + +Minting into a collection — fetch the collection first: + +```ts +import { generateSigner, publicKey } from '@metaplex-foundation/umi' +import { create, fetchCollection } from '@metaplex-foundation/mpl-core' + +const collection = await fetchCollection(umi, publicKey('COLLECTION_ADDRESS')) +const asset = generateSigner(umi) + +await create(umi, { + asset, + collection, + name: 'Item #1', + uri: 'https://example.com/item1.json', +}).sendAndConfirm(umi) +``` + +Common errors: +- `Asset account already exists` — generate a new asset signer +- `Collection not found` — verify you're passing a Core Collection, not a Token Metadata collection +- `Insufficient funds` — fund the payer wallet + +--- + +### Create an Asset with Plugins + +Plugins are attached at creation time via the `--pluginsFile` flag (CLI) or the `plugins` array (SDK). + +**CLI — plugins file:** + +```json +[{ + "type": "Royalties", + "basisPoints": 500, + "creators": [{"address": "", "percentage": 100}], + "ruleSet": {"type": "None"} +}] +``` + +```bash +mplx core asset create --name --uri --pluginsFile ./plugins.json +``` + +**SDK:** + +```ts +import { generateSigner, publicKey } from '@metaplex-foundation/umi' +import { create, ruleSet } from '@metaplex-foundation/mpl-core' + +const asset = generateSigner(umi) + +await create(umi, { + asset, + name: 'NFT with Royalties', + uri: 'https://example.com/metadata.json', + plugins: [ + { + type: 'Royalties', + basisPoints: 500, + creators: [{ address: publicKey('CREATOR_ADDRESS'), percentage: 100 }], + ruleSet: ruleSet('None'), + }, + ], +}).sendAndConfirm(umi) +``` + +Available plugin types: `Royalties`, `FreezeDelegate`, `BurnDelegate`, `TransferDelegate`, `Attributes`, `ImmutableMetadata`, `PermanentFreezeDelegate`, `PermanentTransferDelegate`, `PermanentBurnDelegate`. + +RuleSet options: `{"type": "None"}`, `{"type": "ProgramAllowList", "programs": [...]}`, `{"type": "ProgramDenyList", "programs": [...]}`. + +Notes: +- `basisPoints: 500` = 5% royalties +- Creator percentages must total 100 + +--- + +### Fetch an Asset or Collection + +**CLI:** + +```bash +mplx core asset fetch +mplx core collection fetch +``` + +If CLI help output differs from docs, check: + +```bash +mplx core asset --help +mplx core collection --help +``` + +**SDK:** + +```ts +import { publicKey } from '@metaplex-foundation/umi' +import { fetchAsset, fetchCollection } from '@metaplex-foundation/mpl-core' + +const asset = await fetchAsset(umi, publicKey('ASSET_ADDRESS')) +const collection = await fetchCollection(umi, publicKey('COLLECTION_ADDRESS')) +``` + +For large indexed queries, prefer a DAS-enabled RPC. + +--- + +### Update an Asset + +**CLI:** + +```bash +mplx core asset update --name +mplx core asset update --uri +mplx core asset update --image ./new-image.png # re-uploads via Irys +mplx core asset update --collectionId # move to different collection +``` + +**SDK:** + +```ts +import { publicKey } from '@metaplex-foundation/umi' +import { update, fetchAsset } from '@metaplex-foundation/mpl-core' + +const asset = await fetchAsset(umi, publicKey('ASSET_ADDRESS')) + +await update(umi, { + asset, + name: 'New Name', + uri: 'https://example.com/new-metadata.json', +}).sendAndConfirm(umi) +``` + +Only the update authority or an authorized Update Delegate can update asset metadata. + +**Important — name exists in two places:** The `--name` flag updates the on-chain name field only. The name also lives inside the off-chain metadata JSON referenced by the URI. Both must be kept in sync — if you update the name, you should: +1. Edit the metadata JSON with the new name and re-upload it +2. Run `mplx core asset update --name ` to update the on-chain field +3. Run `mplx core asset update --uri ` to point to the updated JSON + +Skipping either step means the on-chain name and the metadata JSON will disagree, which causes inconsistent display across wallets and marketplaces. + +--- + +### Transfer an Asset + +**CLI:** + +```bash +mplx core asset transfer +``` + +The CLI auto-detects the Collection from the asset — no need to pass it manually. + +**SDK:** + +```ts +import { publicKey } from '@metaplex-foundation/umi' +import { transfer } from '@metaplex-foundation/mpl-core' + +await transfer(umi, { + asset, + newOwner: publicKey('NEW_OWNER_ADDRESS'), +}).sendAndConfirm(umi) +``` + +Only the owner or an authorized Transfer Delegate can transfer the asset. Transfer changes ownership, not update authority. + +--- + +### Burn an Asset + +**CLI:** + +```bash +mplx core asset burn +mplx core asset burn --collection +mplx core asset burn --list ./assets.json # bulk burn from a list +``` + +**SDK:** + +```ts +import { burn } from '@metaplex-foundation/mpl-core' + +await burn(umi, { asset }).sendAndConfirm(umi) +``` + +Burning is irreversible. Only the owner or an authorized Burn Delegate can burn the asset. + +**Before burning, confirm with the user:** *"Burning is permanent and cannot be undone. Are you sure you want to burn asset ``?"* Do not proceed without explicit confirmation. + +--- + +### Create a Collection + +**CLI:** + +```bash +mplx core collection create --name --uri +mplx core collection create --name --uri --pluginsFile ./plugins.json +mplx core collection template +``` + +**SDK:** + +```ts +import { generateSigner } from '@metaplex-foundation/umi' +import { createCollection } from '@metaplex-foundation/mpl-core' + +const collection = generateSigner(umi) + +await createCollection(umi, { + collection, + name: 'My Collection', + uri: 'https://example.com/collection.json', +}).sendAndConfirm(umi) +``` + +Use a fresh signer for the collection address. After creation, save the Collection Address — you'll need it when minting assets into it. + +--- + +### Execute / Asset Signer PDA + +Every Core asset has a derived **Asset Signer PDA** — a wallet address that only the asset's owner can authorize via CPI. It can hold SOL and tokens and sign transactions through Core Execute. + +**CLI — inspect and activate:** + +```bash +# 1. Check the PDA address and balance +mplx core asset execute info + +# 2. Fund the PDA +mplx toolbox sol transfer 0.1 + +# 3. Register it as a CLI wallet +mplx config wallets add vault --asset + +# 4. Switch to it +mplx config wallets set vault + +# 5. Use commands as the PDA +mplx toolbox sol balance +mplx toolbox sol transfer 0.01 +mplx core asset create --name "PDA-created NFT" --uri "https://example.com/nft" +``` + +**SDK:** + +```ts +import { findAssetSignerPda } from '@metaplex-foundation/mpl-core' + +const [signerPda] = findAssetSignerPda(umi, { asset: publicKey('ASSET_ADDRESS') }) +``` + +CPI limitations — these operations cannot be wrapped in `execute()`: +- Large account creation (Merkle trees, Candy Machines) +- Native SOL wrapping (`transferSol` to a token account fails in CPI context) + +Create infrastructure with a normal wallet first, then switch to the asset-signer wallet. + +--- + +## CLI Quick Reference + +```bash +# Asset +mplx core asset create --name --uri +mplx core asset create --name --uri --collection +mplx core asset create --files --image ./image.png --offchain ./metadata.json +mplx core asset create --files --image ./image.png --offchain ./metadata.json --collection +mplx core asset fetch +mplx core asset update --name +mplx core asset update --uri +mplx core asset transfer +mplx core asset burn +mplx core asset execute info + +# Collection +mplx core collection create --name --uri +mplx core collection fetch + +# Wallets +mplx config wallets add vault --asset +mplx config wallets set vault +``` + +--- + +## Notes + +- Core Assets are a different standard from Token Metadata NFTs — do not use Token Metadata SDK functions on Core assets. +- For fungible tokens, use `mplx toolbox token create` — not Core. +- For compressed NFTs, use Bubblegum. +- A fresh signer is required at creation time for both assets and collections. +- Large Candy Machine or Merkle tree creation cannot be done through an asset-signer PDA due to CPI size limits. + +--- + +## Troubleshooting + +| Problem | Solution | +| -------------------------------- | ---------------------------------------------------------------------------------- | +| `mplx: command not found` | Run `npm install -g @metaplex-foundation/cli` | +| `Asset account already exists` | Generate a new asset signer — never reuse an existing address | +| `Collection not found` | Confirm the address is a Core Collection, not a Token Metadata collection | +| `Insufficient funds` | Fund the payer wallet with more SOL | +| Update fails — not authority | Only the update authority or an authorized delegate can update | +| Transfer fails — not owner | Only the owner or an authorized Transfer Delegate can transfer | + +--- + +## Further Reading + +| Resource | Link | +| ------------------------- | ---------------------------------------------------------------------------------------- | +| Core docs | [metaplex.com/docs/smart-contracts/core](https://metaplex.com/docs/smart-contracts/core) | +| Metaplex Skill | [github.com/metaplex-foundation/skill](https://github.com/metaplex-foundation/skill) | +| Candy Machine (NFT drops) | [metaplex.com/docs/smart-contracts/core-candy-machine](https://metaplex.com/docs/smart-contracts/core-candy-machine) | +| Bubblegum (compressed NFTs) | [metaplex.com/docs/smart-contracts/bubblegum](https://metaplex.com/docs/smart-contracts/bubblegum) | diff --git a/public/smart-contracts/core/burn.md b/public/smart-contracts/core/burn.md deleted file mode 100644 index 7e9ed258..00000000 --- a/public/smart-contracts/core/burn.md +++ /dev/null @@ -1,47 +0,0 @@ -# Metaplex Core: Burn Asset - -Use this agent page when the user wants to burn, destroy, or remove a Core Asset. - -Human page: https://metaplex.com/docs/smart-contracts/core/burn - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to burn a Core Asset. -- The user asks for the CLI command to burn one Core Asset. -- The user asks how to burn assets from a list. - -## SDK Function - -Use `burn(umi, { asset })` for SDK burns. Burning is permanent. - -## CLI Commands - -```bash -mplx core asset burn -mplx core asset burn --collection -mplx core asset burn --list -``` - -Notes: - -- Burning is irreversible. -- Use `--collection ` when collection context is required. -- Use `--list ` for a list-based burn flow. -- Only the owner or an authorized Burn Delegate can burn the asset. - -## Related Pages - -- Fetch before burn: /docs/smart-contracts/core/fetch.md -- Burn Delegate plugin: /docs/smart-contracts/core/plugins/burn-delegate diff --git a/public/smart-contracts/core/collections/create.md b/public/smart-contracts/core/collections/create.md deleted file mode 100644 index 7e3d82d2..00000000 --- a/public/smart-contracts/core/collections/create.md +++ /dev/null @@ -1,65 +0,0 @@ -# Metaplex Core: Create Collection - -Use this agent page when the user wants to create a Core Collection. - -Human page: https://metaplex.com/docs/smart-contracts/core/collections/create - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to create a Core Collection. -- The user asks how to create a Collection with plugins or royalties. -- The user wants the CLI command to create a Collection. - -## SDK Function - -Use `createCollection(umi, { collection, name, uri })`. Use a fresh signer for the collection address. - -## CLI Quick Reference - -```bash -mplx core collection create --name --uri -mplx core collection create --name --uri --pluginsFile -mplx core collection template -``` - -Notes: - -- `--pluginsFile ` attaches plugins during Collection creation. -- `mplx core collection template` generates template files. -- Full CLI docs: /docs/dev-tools/cli/core/create-collection - -## Royalties Plugin Quick Reference - -```json -[{ - "type": "Royalties", - "basisPoints": 500, - "creators": [{"address": "", "percentage": 100}], - "ruleSet": {"type": "None"} -}] -``` - -Notes: - -- `basisPoints: 500` means 5%. -- Creator percentages must total 100. -- For the full CLI plugin creation flow, use /docs/dev-tools/cli/core/create-collection - -## Related Pages - -- Fetch a Core Collection: /docs/smart-contracts/core/collections/fetch -- Core plugins overview: /docs/smart-contracts/core/plugins -- Create an asset into the Collection: /docs/smart-contracts/core/create-asset -- Full CLI create collection docs: /docs/dev-tools/cli/core/create-collection diff --git a/public/smart-contracts/core/collections/fetch.md b/public/smart-contracts/core/collections/fetch.md deleted file mode 100644 index 69517902..00000000 --- a/public/smart-contracts/core/collections/fetch.md +++ /dev/null @@ -1,45 +0,0 @@ -# Metaplex Core: Fetch Collection - -Use this agent page when the user wants to read or inspect a Core Collection account. - -Human page: https://metaplex.com/docs/smart-contracts/core/collections/fetch - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to fetch a Core Collection by address. -- The user wants to inspect Collection metadata or plugin data. -- The user wants the CLI command to fetch a Collection. - -## SDK Function - -Use `fetchCollection(umi, collectionAddress)`. - -## CLI Command - -```bash -mplx core collection fetch -``` - -If the installed CLI differs from the reference, check: - -```bash -mplx core collection --help -``` - -## Related Pages - -- Create a Core Collection: /docs/smart-contracts/core/collections/create.md -- Fetch Core Assets: /docs/smart-contracts/core/fetch.md -- Core Collections overview: /docs/smart-contracts/core/collections diff --git a/public/smart-contracts/core/create-asset.md b/public/smart-contracts/core/create-asset.md deleted file mode 100644 index 4864a7a3..00000000 --- a/public/smart-contracts/core/create-asset.md +++ /dev/null @@ -1,144 +0,0 @@ -# Metaplex Core: Create Asset - -Use this agent page when the user wants to create, mint, or initialize a Metaplex Core Asset. - -Human page: https://metaplex.com/docs/smart-contracts/core/create-asset - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to create a Core Asset or Core NFT. -- The user asks which Core SDK function creates an asset. -- The user wants to mint an asset into a Core Collection. -- The user wants to create a Core Asset with plugins such as royalties. - -## Do Not Use - -- For fungible tokens, use SPL Token or Token Metadata fungible-token docs. -- For compressed NFTs, use Bubblegum docs. -- For legacy Token Metadata NFTs, use Token Metadata docs. - -## Required Context - -- Core Assets are single on-chain accounts that store ownership, metadata URI, and plugin data. -- A new asset requires a fresh signer. Do not reuse an existing asset signer. -- Metadata JSON should be uploaded first and referenced by URI. -- The Core program ID is `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d`. - -## SDK Packages - -```bash -npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi -``` - -## CLI Quick Reference - -Use these when the user asks for the Metaplex CLI flow instead of SDK code. - -```bash -mplx core asset create --name --uri -mplx core asset create --name --uri --owner -mplx core asset create --name --uri --collection -mplx core asset create --files --image --offchain -mplx core asset template -``` - -Notes: - -- `--owner` mints to a different wallet and works on all asset create variants. -- `--files` uploads local image and metadata files automatically. If JSON upload fails, use the manual upload workflow. -- `mplx core asset template` generates template files. -- Full CLI docs: /docs/dev-tools/cli/core/create-asset - -## CLI Metadata Quick Reference - -```bash -# One-step local file workflow -mplx core asset create --files --image ./image.png --offchain ./metadata.json -``` - -For manual upload workflows or batch creation, use the full CLI docs: /docs/dev-tools/cli/core/create-asset - -## Minimal Create - -```ts -import { generateSigner } from '@metaplex-foundation/umi' -import { create } from '@metaplex-foundation/mpl-core' - -const asset = generateSigner(umi) - -await create(umi, { - asset, - name: 'My NFT', - uri: 'https://example.com/metadata.json', -}).sendAndConfirm(umi) -``` - -## Create Into A Collection - -Use `fetchCollection` first, then pass the collection into `create`. - -```ts -import { generateSigner, publicKey } from '@metaplex-foundation/umi' -import { create, fetchCollection } from '@metaplex-foundation/mpl-core' - -const collectionAddress = publicKey('YOUR_COLLECTION_ADDRESS') -const collection = await fetchCollection(umi, collectionAddress) -const asset = generateSigner(umi) - -await create(umi, { - asset, - collection, - name: 'Collection Item #1', - uri: 'https://example.com/item1.json', -}).sendAndConfirm(umi) -``` - -## Create With Royalties - -```ts -import { generateSigner, publicKey } from '@metaplex-foundation/umi' -import { create, ruleSet } from '@metaplex-foundation/mpl-core' - -const creator = publicKey('YOUR_CREATOR_ADDRESS') -const asset = generateSigner(umi) - -await create(umi, { - asset, - name: 'NFT with Royalties', - uri: 'https://example.com/metadata.json', - plugins: [ - { - type: 'Royalties', - basisPoints: 500, - creators: [{ address: creator, percentage: 100 }], - ruleSet: ruleSet('None'), - }, - ], -}).sendAndConfirm(umi) -``` - -## Common Errors - -- `Asset account already exists`: generate a new asset signer. -- `Collection not found`: verify the collection address and fetch a Core Collection, not a Token Metadata collection. -- `Insufficient funds`: fund the payer with enough SOL for rent and fees. - -## Related Pages - -- Fetch a Core Asset: /docs/smart-contracts/core/fetch -- Update a Core Asset: /docs/smart-contracts/core/update -- Create a Core Collection: /docs/smart-contracts/core/collections/create -- Core plugins overview: /docs/smart-contracts/core/plugins -- Full CLI create asset docs: /docs/dev-tools/cli/core/create-asset diff --git a/public/smart-contracts/core/execute-asset-signing.md b/public/smart-contracts/core/execute-asset-signing.md deleted file mode 100644 index 9d0c0e09..00000000 --- a/public/smart-contracts/core/execute-asset-signing.md +++ /dev/null @@ -1,64 +0,0 @@ -# Metaplex Core: Execute Asset Signing - -Use this agent page when the user asks about Core Asset Signer PDAs, asset-owned wallets, or executing CLI commands through an asset signer. - -Human page: https://metaplex.com/docs/smart-contracts/core/execute-asset-signing - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how an MPL Core Asset can sign transactions. -- The user asks how to inspect or fund an asset signer PDA. -- The user asks how to use a Core Asset as the active CLI wallet. -- The user asks about execute limitations. - -## CLI Quick Reference - -```bash -mplx core asset execute info -``` - -This shows the signer PDA address and SOL balance. - -## Asset-Signer Wallet Quick Reference - -```bash -# 1. Check the PDA info for an asset. -mplx core asset execute info - -# 2. Fund the PDA. -mplx toolbox sol transfer 0.1 - -# 3. Register the asset signer as a wallet. -mplx config wallets add vault --asset - -# 4. Switch to the asset-signer wallet. -mplx config wallets set vault - -# 5. Use commands as the PDA. -mplx toolbox sol balance -mplx toolbox sol transfer 0.01 -mplx core asset create --name "PDA Created NFT" --uri "https://example.com/nft" -``` - -For bypass options, raw instructions, supported command families, and CPI limitations, use the full CLI docs: /docs/dev-tools/cli/core/execute - -## CPI Limitations - -Some operations cannot be wrapped in `execute()` because of Solana CPI constraints: - -- Large account creation, including Merkle trees and candy machines. -- Native SOL wrapping, where `transferSol` to a token account fails in CPI context. - -Use a normal wallet to create infrastructure first, then switch to the asset-signer wallet for subsequent operations. diff --git a/public/smart-contracts/core/fetch.md b/public/smart-contracts/core/fetch.md deleted file mode 100644 index 7f059043..00000000 --- a/public/smart-contracts/core/fetch.md +++ /dev/null @@ -1,62 +0,0 @@ -# Metaplex Core: Fetch Asset Or Collection - -Use this agent page when the user wants to fetch, read, inspect, or download a Metaplex Core Asset or Collection. - -Human page: https://metaplex.com/docs/smart-contracts/core/fetch - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to fetch a Core Asset by address. -- The user asks how to fetch a Core Collection by address. -- The user wants the CLI command to download asset or collection files. - -## SDK Functions - -- Fetch an asset with `fetchAsset(umi, publicKey)`. -- Fetch a collection with `fetchCollection(umi, publicKey)`. -- For large indexed queries, prefer DAS where available. - -## CLI Commands - -The CLI reference uses the `asset` and `collection` subcommands: - -```bash -mplx core asset fetch -mplx core collection fetch -``` - -The human CLI docs may also show `mplx core fetch asset ` and `mplx core fetch collection `. Prefer the installed CLI help if there is a mismatch: - -```bash -mplx core --help -mplx core asset --help -mplx core collection --help -``` - -## Common Flow - -```bash -# Fetch a Core Asset. -mplx core asset fetch - -# Fetch a Core Collection. -mplx core collection fetch -``` - -## Related Pages - -- Create a Core Asset: /docs/smart-contracts/core/create-asset.md -- Update a Core Asset: /docs/smart-contracts/core/update.md -- Create a Core Collection: /docs/smart-contracts/core/collections/create.md diff --git a/public/smart-contracts/core/plugins.md b/public/smart-contracts/core/plugins.md deleted file mode 100644 index 0dc7b27a..00000000 --- a/public/smart-contracts/core/plugins.md +++ /dev/null @@ -1,75 +0,0 @@ -# Metaplex Core: Plugins - -Use this agent page when the user wants to configure Core plugins, especially CLI `--pluginsFile` input. - -Human page: https://metaplex.com/docs/smart-contracts/core/plugins - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks for the plugin JSON file format. -- The user asks how to add royalties at asset or collection creation. -- The user asks which plugin types are available in Core CLI flows. - -## CLI Plugin Quick Reference - -Use this JSON shape with `--pluginsFile`: - -```json -[{ - "type": "Royalties", - "basisPoints": 500, - "creators": [{"address": "", "percentage": 100}], - "ruleSet": {"type": "None"} -}] -``` - -## Available Plugin Types - -- `Royalties` -- `FreezeDelegate` -- `BurnDelegate` -- `TransferDelegate` -- `Attributes` -- `ImmutableMetadata` -- `PermanentFreezeDelegate` -- `PermanentTransferDelegate` -- `PermanentBurnDelegate` - -## RuleSet Options - -```json -{"type": "None"} -``` - -```json -{"type": "ProgramAllowList", "programs": [""]} -``` - -```json -{"type": "ProgramDenyList", "programs": [""]} -``` - -Notes: - -- `basisPoints: 500` means 5%. -- Creator percentages must total 100. -- For complete CLI plugin examples, use /docs/dev-tools/cli/core/plugins - -## Related Pages - -- Create a Core Asset with plugins: /docs/smart-contracts/core/create-asset -- Create a Core Collection with plugins: /docs/smart-contracts/core/collections/create -- Add plugins after creation: /docs/smart-contracts/core/plugins/adding-plugins -- Full CLI plugin docs: /docs/dev-tools/cli/core/plugins diff --git a/public/smart-contracts/core/transfer.md b/public/smart-contracts/core/transfer.md deleted file mode 100644 index efafbbed..00000000 --- a/public/smart-contracts/core/transfer.md +++ /dev/null @@ -1,45 +0,0 @@ -# Metaplex Core: Transfer Asset - -Use this agent page when the user wants to transfer ownership of a Core Asset to another wallet. - -Human page: https://metaplex.com/docs/smart-contracts/core/transfer - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to send a Core Asset to another wallet. -- The user asks for the CLI command to transfer a Core Asset. -- The user asks whether collection data is needed for CLI transfer. - -## SDK Function - -Use `transfer(umi, { asset, newOwner })`. For SDK code, include collection data when required by the asset state or surrounding docs. - -## CLI Command - -```bash -mplx core asset transfer -``` - -Notes: - -- The CLI auto-detects the Collection from the asset. -- Only the owner or an authorized Transfer Delegate can transfer the asset. -- Transfer changes ownership, not update authority. - -## Related Pages - -- Fetch before transfer: /docs/smart-contracts/core/fetch.md -- Update metadata instead: /docs/smart-contracts/core/update.md -- Transfer Delegate plugin: /docs/smart-contracts/core/plugins/transfer-delegate diff --git a/public/smart-contracts/core/update.md b/public/smart-contracts/core/update.md deleted file mode 100644 index 21c9492d..00000000 --- a/public/smart-contracts/core/update.md +++ /dev/null @@ -1,49 +0,0 @@ -# Metaplex Core: Update Asset - -Use this agent page when the user wants to update a Core Asset's name, metadata URI, image, or collection membership. - -Human page: https://metaplex.com/docs/smart-contracts/core/update - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks how to update Core Asset metadata. -- The user asks how to change a Core Asset's name or URI. -- The user asks how to re-upload an image through the CLI. -- The user asks how to move a Core Asset to another Collection. - -## SDK Function - -Use `update(umi, { asset, name, uri })` for SDK updates. Fetch the asset first when you need current state or collection data. - -## CLI Commands - -```bash -mplx core asset update --name -mplx core asset update --uri -mplx core asset update --image -mplx core asset update --collectionId -``` - -Notes: - -- `--image ` re-uploads the image via Irys. -- `--collectionId ` moves the asset to a different collection. -- Only the update authority or an authorized update delegate can update asset metadata. - -## Related Pages - -- Fetch a Core Asset first: /docs/smart-contracts/core/fetch.md -- Transfer ownership instead: /docs/smart-contracts/core/transfer.md -- Plugin updates: /docs/smart-contracts/core/plugins/update-plugins diff --git a/public/smart-contracts/genesis.md b/public/smart-contracts/genesis.md new file mode 100644 index 00000000..f50aec99 --- /dev/null +++ b/public/smart-contracts/genesis.md @@ -0,0 +1,438 @@ +# Metaplex Genesis + +Use this file when the user asks about Genesis token launches, launch mechanisms, bonding curves, launch pools, presales, swaps, or the Genesis CLI/SDK flow. + +Human docs: https://metaplex.com/docs/smart-contracts/genesis + +## Agent Routing + +- **Prefer CLI** for operational tasks — an agent creating a launch, executing swaps, or depositing should use `mplx` commands. +- **Prefer SDK** when the user is building an app, backend, script, or reusable integration that needs to send transactions programmatically. +- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. + +--- + +## Common Questions + +Use this section to match what the user is asking to the right steps. + +--- + +**"I want to launch a token"** + +Choose the launch type that fits: + +| Launch Type | How it works | Best for | +| ---------------- | ----------------------------------------------------------------------- | ------------------------------------- | +| **Bonding Curve** | Trading starts immediately on an AMM curve, graduates to Raydium at ~85 SOL | Fast launch, no deposit window needed | +| **Launch Pool** | 48-hour deposit window, proportional distribution, graduates to Raydium | Fair launch with a raise goal | +| **Presale** | Fixed-price sale during a deposit window | Known price, controlled distribution | + +Then follow the relevant flow below. + +--- + +**"I want to launch a bonding curve token"** + +1. [Initial Setup](#initial-setup) — verify CLI, RPC, and wallet +2. [Bonding Curve Launch](#bonding-curve-launch) — image prep instructions are in this section + +--- + +**"I want to launch a bonding curve token linked to my agent"** + +1. [Initial Setup](#initial-setup) +2. [Bonding Curve Launch](#bonding-curve-launch) — use `--agentMint` and `--agentSetToken` flags + +--- + +**"I want to launch a launch pool token"** + +1. [Initial Setup](#initial-setup) +2. [Launch Pool](#launch-pool) — image prep instructions are in this section + +--- + +**"I want to buy or sell a bonding curve token"** + +1. [Bonding Curve Swaps](#bonding-curve-swaps) + +--- + +**"I want to integrate Genesis into my app or backend"** + +1. [Initial Setup](#initial-setup) — SDK path +2. [SDK / API Client](#sdk--api-client) — use `createAndRegisterLaunch()` + +--- + +**"I want to register an existing Genesis launch"** + +1. [Register an Existing Launch](#register-an-existing-launch) + +--- + +## Initial Setup + +Before running any Genesis operation, verify the environment is ready. + +### 1. Check CLI Installation + +```bash +mplx --version +``` + +If the command is not found, install it: + +```bash +npm install -g @metaplex-foundation/cli +``` + +### 2. Configure RPC Endpoint + +```bash +mplx config rpcs list +``` + +If no RPC is configured, set one: + +```bash +# Devnet (testing) +mplx config rpcs set devnet + +# Mainnet (requires a custom RPC endpoint) +mplx config rpcs add mainnet +mplx config rpcs set mainnet +``` + +### 3. Configure Wallet + +```bash +mplx config wallets list +``` + +If no wallet is configured, create one: + +```bash +mplx config wallets new --name main +``` + +Fund the wallet with enough SOL to cover the launch transaction and fees. + +### 4. SDK Setup (for code paths) + +```bash +npm install @metaplex-foundation/genesis @metaplex-foundation/umi-bundle-defaults +``` + +--- + +## Launch Types + +### Bonding Curve Launch + +The `--image` flag requires a publicly accessible URL. Use an existing URL if you have one, or upload a local file first: + +```bash +mplx toolbox storage upload ./token-image.png +# Returns: https://gateway.irys.xyz/ +``` + +The CLI signs the upload with the active wallet keypair — the wallet must have SOL. + +Trading starts immediately on a constant-product AMM. Price rises as buyers purchase. When the curve fills (~85 SOL), 100% of proceeds graduate to a Raydium LP — LP tokens are locked forever. No deposit window, no raise goal required. + +- ~718M tokens allocated to the curve +- Virtual reserves: ~464.6M tokens and 55 SOL (sets initial price) +- Only SOL is supported as the quote token + +**CLI:** + +```bash +mplx genesis launch create \ + --launchType bonding-curve \ + --name "My Token" \ + --symbol "MTKN" \ + --image "https://gateway.irys.xyz/" +``` + +Optional flags: + +| Flag | Description | +| ------------------ | --------------------------------------------------------------- | +| `--description` | Token description (max 250 characters) | +| `--firstBuyAmount` | SOL amount for an initial buy at launch (max 85, fee-free) | +| `--creatorFeeWallet` | Wallet to receive creator fees (defaults to active wallet) | +| `--agentMint` | Agent Asset Address — links this launch as the agent token | +| `--agentSetToken` | Permanently links launch to the agent (irreversible, one-time) | +| `--website` | Project website URL | +| `--twitter` | Project Twitter URL | +| `--telegram` | Project Telegram URL | + +**SDK:** + +```ts +import { createAndRegisterLaunch } from '@metaplex-foundation/genesis' + +await createAndRegisterLaunch(umi, {}, { + launchType: 'bonding-curve', + name: 'My Token', + symbol: 'MTKN', + image: 'https://gateway.irys.xyz/', + network: 'solana-mainnet', +}) +``` + +Use `createLaunch()` instead of `createAndRegisterLaunch()` for custom signing or Jito bundles. Then call `signAndSendLaunchTransactions()` and `registerLaunch()` manually after on-chain confirmation. + +--- + +### Launch Pool + +The `--image` flag requires a publicly accessible URL. Use an existing URL if you have one, or upload a local file first with `mplx toolbox storage upload ./token-image.png`. + +Opens a 48-hour deposit window. Participants deposit SOL (or USDC) toward a raise goal. Distribution is proportional — each depositor receives tokens proportional to their share of total deposits. After the window closes and the goal is met, the token graduates to Raydium. LP tokens are locked for 1 year (quarterly unlock). + +**CLI:** + +```bash +mplx genesis launch create \ + --launchType launchpool \ + --name "My Token" \ + --symbol "MTKN" \ + --image "https://gateway.irys.xyz/" \ + --tokenAllocation 500000000 \ + --depositStartTime "2026-06-01T00:00:00Z" \ + --raiseGoal 250 \ + --raydiumLiquidityBps 5000 \ + --fundsRecipient +``` + +Required flags: + +| Flag | Description | +| ----------------------- | --------------------------------------------------------------------------------------------- | +| `--name` | Token name (1-32 characters) | +| `--symbol` | Token symbol (1-10 characters) | +| `--image` | Publicly accessible image URL. Use an existing URL or upload with `mplx toolbox storage upload` | +| `--depositStartTime` | Deposit window start (ISO date string or Unix timestamp) | +| `--tokenAllocation` | Tokens allocated to the pool (50M–500M of 1B total supply) | +| `--raiseGoal` | Raise goal in whole units. Minimum: 250 SOL or 25,000 USDC | +| `--raydiumLiquidityBps` | Percentage of raised funds going to Raydium LP, in basis points (2000–10000, i.e. 20%–100%) | +| `--fundsRecipient` | Wallet that receives the unlocked portion of raised funds | + +Optional flags: `--description`, `--quoteMint` (`SOL`, `USDC`, or mint address), `--lockedAllocations`, `--website`, `--twitter`, `--telegram`. + +Early depositors receive a bonus (up to 25%). Late withdrawers pay a penalty. + +**Manual flow (low-level SDK):** + +```ts +import { + initializeV2, + addLaunchPoolBucketV2, + addUnlockedBucketV2, + finalizeV2, +} from '@metaplex-foundation/genesis' + +await initializeV2(umi, { name, symbol, totalSupply }).sendAndConfirm(umi) +await addLaunchPoolBucketV2(umi, { genesis, allocation, depositStart, depositEnd, claimStart, claimEnd }).sendAndConfirm(umi) +await addUnlockedBucketV2(umi, { genesis, recipient }).sendAndConfirm(umi) +await finalizeV2(umi, { genesis }).sendAndConfirm(umi) // irreversible +``` + +Notes: +- Low-level commands use base units and Unix timestamps +- `finalizeV2` / `mplx genesis finalize` is irreversible +- Full supply must be allocated before finalizing — use unlocked buckets for the remainder +- Wrap SOL before manual deposits when the quote token is SOL + +--- + +### Presale + +Fixed-price sale during a deposit window. Price is determined by `quoteCap / allocation`. After the window, participants claim their tokens proportionally up to the cap. + +**CLI (manual bucket flow):** + +```bash +mplx genesis create --name --symbol --totalSupply + +mplx genesis bucket add-presale \ + --allocation \ + --quoteCap \ + --depositStart \ + --depositEnd \ + --claimStart \ + --bucketIndex + +mplx genesis finalize +mplx genesis presale deposit --amount --bucketIndex +mplx genesis presale claim --bucketIndex +``` + +**SDK:** + +```ts +import { + addPresaleBucketV2, + depositPresaleV2, + claimPresaleV2, +} from '@metaplex-foundation/genesis' +``` + +Use `--minimumDeposit` and `--depositLimit` for deposit constraints. + +--- + +## Bonding Curve Swaps + +Buy or sell tokens on an active bonding curve. + +**CLI:** + +```bash +# Inspect curve state +mplx genesis swap --info + +# Quote without swapping +mplx genesis swap --info --buyAmount +mplx genesis swap --info --sellAmount + +# Execute swaps +mplx genesis swap --buyAmount --slippage +mplx genesis swap --sellAmount --slippage + +# Inspect the bonding curve bucket +mplx genesis bucket fetch --type bonding-curve +``` + +Notes: +- CLI buy amounts are in quote-token base units — for SOL, `100000000` = 0.1 SOL +- `--slippage` is in basis points — `200` = 2% +- CLI buys can auto-wrap SOL; SDK swaps require explicit wSOL handling + +**SDK:** + +```ts +import { + findBondingCurveBucketV2Pda, + isSwappable, + getSwapResult, + applySlippage, + swapBondingCurveV2, +} from '@metaplex-foundation/genesis' + +const [bucketPda] = findBondingCurveBucketV2Pda(umi, { genesis }) +const swappable = await isSwappable(umi, bucketPda) +const quote = await getSwapResult(umi, { genesis, isBuy: true, amount }) +const minOut = applySlippage(quote.amountOut, 200) // 2% slippage + +await swapBondingCurveV2(umi, { genesis, isBuy: true, amount, minAmountOutScaled: minOut }).sendAndConfirm(umi) +``` + +--- + +## SDK / API Client + +Use `createAndRegisterLaunch()` for the standard one-call integration. Use the lower-level functions when custom signing, Jito bundles, retries, or server-side transaction senders are needed. + +```ts +import { createAndRegisterLaunch, createLaunch, signAndSendLaunchTransactions, registerLaunch } from '@metaplex-foundation/genesis' + +// One-call flow +const result = await createAndRegisterLaunch(umi, {}, launchParams) + +// Custom signing flow +const { transactions, launchConfig } = await createLaunch(umi, {}, launchParams) +await signAndSendLaunchTransactions(umi, transactions) +await registerLaunch(umi, {}, launchConfig) +``` + +The REST API endpoints used under the hood: +- `POST /v1/launches/create` — returns unsigned transactions +- `POST /v1/launches/register` — registers after on-chain confirmation + +Prefer the SDK over direct REST calls unless the user specifically needs raw HTTP access. + +--- + +## Register an Existing Launch + +For a Genesis account created outside the CLI or SDK (e.g., manually on-chain): + +```bash +mplx genesis launch register --launchConfig +``` + +**SDK:** + +```ts +await registerLaunch(umi, {}, { genesisAccount, launchConfig }) +``` + +--- + +## CLI Quick Reference + +```bash +# Image upload (required before launch) +mplx toolbox storage upload ./token-image.png + +# Bonding curve launch +mplx genesis launch create --launchType bonding-curve --name --symbol --image + +# Launch pool +mplx genesis launch create --launchType launchpool --name --symbol --image \ + --tokenAllocation --depositStartTime --raiseGoal \ + --raydiumLiquidityBps --fundsRecipient + +# Swaps +mplx genesis swap --info +mplx genesis swap --buyAmount --slippage +mplx genesis swap --sellAmount --slippage + +# Inspect +mplx genesis fetch +mplx genesis bucket fetch --type bonding-curve + +# Register existing +mplx genesis launch register --launchConfig +``` + +--- + +## Notes + +- `--image` accepts any publicly accessible URL. Use an existing URL if you have one, or upload a local file first with `mplx toolbox storage upload ./image.png`. +- `--agentSetToken` is irreversible — it permanently links the launch to the agent identity. +- `--agentMint` auto-derives the creator fee wallet from the agent's Asset Signer PDA. +- `finalize` / `finalizeV2` is irreversible — all buckets must be added first. +- LaunchPool `--raiseGoal` minimum is 250 SOL or 25,000 USDC. +- LaunchPool `--raydiumLiquidityBps` range: 2000–10000 (20%–100%). +- Bonding curves only support SOL as the quote token. +- Low-level manual flows use base units and Unix timestamps — not human-readable amounts or ISO dates. + +--- + +## Troubleshooting + +| Problem | Solution | +| ------------------------------------------ | ------------------------------------------------------------------------------------------- | +| `mplx: command not found` | Run `npm install -g @metaplex-foundation/cli` | +| Image upload fails | Ensure wallet has SOL; the CLI signs Irys uploads with the active keypair | +| Launch fails — image URL rejected | Use a publicly accessible URL; if uploading locally run `mplx toolbox storage upload` first | +| `raiseGoal` too low | Minimum is 250 SOL or 25,000 USDC | +| Agent not owned by connected wallet | Wait ~30 seconds for on-chain propagation, then retry | +| `finalize` fails — supply not fully allocated | Add unlocked buckets to account for the remainder before finalizing | + +--- + +## Further Reading + +| Resource | Link | +| --------------------- | ------------------------------------------------------------------------------------------------ | +| Genesis docs | [metaplex.com/docs/smart-contracts/genesis](https://metaplex.com/docs/smart-contracts/genesis) | +| Metaplex Skill | [github.com/metaplex-foundation/skill](https://github.com/metaplex-foundation/skill) | +| Agents (agent token) | [metaplex.com/docs/agents](https://metaplex.com/docs/agents) | +| Core (NFT standard) | [metaplex.com/docs/smart-contracts/core](https://metaplex.com/docs/smart-contracts/core) | diff --git a/public/smart-contracts/genesis/bonding-curve-launch.md b/public/smart-contracts/genesis/bonding-curve-launch.md deleted file mode 100644 index 12aee0c6..00000000 --- a/public/smart-contracts/genesis/bonding-curve-launch.md +++ /dev/null @@ -1,63 +0,0 @@ -# Metaplex Genesis: Launch Bonding Curve Via API - -Use this agent page when the user wants to create and register a bonding curve token launch with the Genesis SDK, API, or CLI. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve-launch - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## SDK/API Functions - -- `createAndRegisterLaunch()` handles create, sign/send, and register in one call. -- `createLaunch()` returns unsigned transactions for custom signing. -- `signAndSendLaunchTransactions()` sends the create transactions. -- `registerLaunch()` registers the launch after transactions confirm onchain. - -## CLI Quick Reference - -```bash -mplx genesis launch create --launchType bonding-curve \ - --name \ - --symbol \ - --image - -mplx genesis launch create --launchType bonding-curve \ - --name \ - --symbol \ - --image \ - --creatorFeeWallet \ - --firstBuyAmount - -mplx genesis launch create --launchType bonding-curve \ - --name \ - --symbol \ - --image \ - --agentMint \ - --agentSetToken -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/launch - -## Notes - -- `--image` must be an Irys gateway URL. -- `--firstBuyAmount` is in SOL and is fee-free. -- `--agentSetToken` is irreversible. -- `--agentMint` auto-derives the creator fee wallet from the agent PDA. - -## Related Pages - -- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md -- Bonding Curve swaps: /docs/smart-contracts/genesis/bonding-curve-swaps.md -- API Client: /docs/smart-contracts/genesis/sdk/api-client.md -- Full CLI launch docs: /docs/dev-tools/cli/genesis/launch diff --git a/public/smart-contracts/genesis/bonding-curve-swaps.md b/public/smart-contracts/genesis/bonding-curve-swaps.md deleted file mode 100644 index e9d03872..00000000 --- a/public/smart-contracts/genesis/bonding-curve-swaps.md +++ /dev/null @@ -1,57 +0,0 @@ -# Metaplex Genesis: Bonding Curve Swaps - -Use this agent page when the user wants to quote, buy, sell, or inspect a Genesis Bonding Curve. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve-swaps - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## SDK Functions - -- `findBondingCurveBucketV2Pda()` derives the bucket PDA. -- `isSwappable()` checks whether the curve is active. -- `getSwapResult()` computes a quote including fees. -- `applySlippage()` derives `minAmountOutScaled`. -- `swapBondingCurveV2()` executes the buy or sell instruction. - -## CLI Quick Reference - -```bash -# Inspect curve state. -mplx genesis swap --info - -# Quote without swapping. -mplx genesis swap --info --buyAmount -mplx genesis swap --info --sellAmount - -# Execute swaps. -mplx genesis swap --buyAmount --slippage -mplx genesis swap --sellAmount --slippage - -# Inspect the bonding curve bucket. -mplx genesis bucket fetch --type bonding-curve -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/bonding-curve - -## Notes - -- CLI buy amounts are quote-token base units; for SOL, `100000000` is 0.1 SOL. -- CLI `--slippage` is basis points; `200` is 2%. -- SDK swaps require explicit wSOL handling; CLI buys can auto-wrap SOL. - -## Related Pages - -- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md -- Launch Bonding Curve: /docs/smart-contracts/genesis/bonding-curve-launch.md -- Full CLI bonding curve docs: /docs/dev-tools/cli/genesis/bonding-curve diff --git a/public/smart-contracts/genesis/bonding-curve.md b/public/smart-contracts/genesis/bonding-curve.md deleted file mode 100644 index 3fb0a63d..00000000 --- a/public/smart-contracts/genesis/bonding-curve.md +++ /dev/null @@ -1,52 +0,0 @@ -# Metaplex Genesis: Bonding Curve - -Use this agent page when the user asks about Genesis Bonding Curve concepts or a CLI bonding curve lifecycle. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/bonding-curve - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user wants continuous trading instead of a deposit window. -- The user asks how to launch a bonding curve token. -- The user asks how bonding curve trading and graduation work. - -## Concepts - -- Bonding Curve launches use a constant product AMM. -- Users can buy and sell while the curve is active. -- Graduation to Raydium CPMM happens automatically when all curve tokens are sold. -- Bonding Curve launches are created through the Genesis API flow, not the manual bucket flow. - -## CLI Quick Reference - -```bash -mplx genesis launch create --launchType bonding-curve \ - --name \ - --symbol \ - --image - -mplx genesis swap --info -mplx genesis swap --buyAmount -mplx genesis swap --sellAmount -mplx genesis bucket fetch --type bonding-curve -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/bonding-curve - -## Related Pages - -- Launch via API: /docs/smart-contracts/genesis/bonding-curve-launch.md -- Swap integration: /docs/smart-contracts/genesis/bonding-curve-swaps.md -- Full CLI bonding curve docs: /docs/dev-tools/cli/genesis/bonding-curve diff --git a/public/smart-contracts/genesis/getting-started.md b/public/smart-contracts/genesis/getting-started.md deleted file mode 100644 index c24a10b0..00000000 --- a/public/smart-contracts/genesis/getting-started.md +++ /dev/null @@ -1,58 +0,0 @@ -# Metaplex Genesis: Getting Started - -Use this agent page when the user wants the Genesis launch lifecycle or a starting point for implementing a token launch. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/getting-started - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## Lifecycle - -Manual flow: - -```text -create -> bucket add-* -> finalize -> deposit/withdraw/transition -> claim -> revoke -``` - -Launch API flow: - -```text -launch create -> deposit window or swaps -> graduation -> claim -``` - -## SDK Entry Points - -- `initializeV2()` creates the Genesis account and token mint. -- `addLaunchPoolBucketV2()` adds a Launch Pool bucket. -- `addPresaleBucketV2()` adds a Presale bucket. -- `addUnlockedBucketV2()` adds a treasury/team bucket. -- `finalizeV2()` locks the launch configuration. - -## CLI Quick Reference - -```bash -mplx genesis create --name --symbol --totalSupply -mplx genesis bucket add-launch-pool --allocation --depositStart --depositEnd --claimStart --claimEnd -mplx genesis bucket add-presale --allocation --quoteCap --depositStart --depositEnd --claimStart --bucketIndex -mplx genesis bucket add-unlocked --recipient --claimStart -mplx genesis finalize -``` - -Full CLI docs: /docs/dev-tools/cli/genesis - -## Notes - -- Low-level commands use base units and Unix seconds. -- `finalize` is irreversible. -- `finalize` requires full supply allocation; use unlocked buckets for remainder. -- If using SOL as quote token in manual flows, wrap SOL before depositing. diff --git a/public/smart-contracts/genesis/index.md b/public/smart-contracts/genesis/index.md deleted file mode 100644 index 7cf4b33a..00000000 --- a/public/smart-contracts/genesis/index.md +++ /dev/null @@ -1,57 +0,0 @@ -# Metaplex Genesis - -Use this agent page when the user asks about Genesis token launches, launch mechanisms, or the overall Genesis CLI/SDK flow. - -Human page: https://metaplex.com/docs/smart-contracts/genesis - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user asks what Genesis is or which launch type to use. -- The user asks for the high-level Genesis lifecycle. -- The user asks for a CLI overview before choosing a specific flow. - -## Concepts - -- Genesis creates and manages token launches on Solana. -- Launch types include Launch Pool, Presale, and Bonding Curve. -- Low-level flow: create Genesis account, add buckets, finalize, deposit or swap, claim, optionally revoke authorities. -- API flow: `genesis launch create` handles creation and platform registration in one command. - -## CLI Quick Reference - -```bash -# Recommended all-in-one launch API flow. -mplx genesis launch create --name --symbol --image ... - -# Manual setup flow. -mplx genesis create --name --symbol --totalSupply -mplx genesis bucket add-launch-pool ... -mplx genesis bucket add-presale ... -mplx genesis bucket add-unlocked ... -mplx genesis finalize -mplx genesis fetch -mplx genesis bucket fetch --bucketIndex --type -``` - -Full CLI docs: /docs/dev-tools/cli/genesis - -## Route To Task Pages - -- Launch Pool: /docs/smart-contracts/genesis/launch-pool.md -- Presale: /docs/smart-contracts/genesis/presale.md -- Bonding Curve overview: /docs/smart-contracts/genesis/bonding-curve.md -- Bonding Curve launch via API: /docs/smart-contracts/genesis/bonding-curve-launch.md -- Bonding Curve swaps: /docs/smart-contracts/genesis/bonding-curve-swaps.md -- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/integration-apis/create-launch.md b/public/smart-contracts/genesis/integration-apis/create-launch.md deleted file mode 100644 index c06e0539..00000000 --- a/public/smart-contracts/genesis/integration-apis/create-launch.md +++ /dev/null @@ -1,42 +0,0 @@ -# Metaplex Genesis API: Create Launch - -Use this agent page when the user wants to call the REST API endpoint that builds Genesis launch transactions. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/integration-apis/create-launch - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## API Endpoint - -```text -POST /v1/launches/create -``` - -This returns unsigned transactions. The caller must sign and send them, then call Register Launch after onchain confirmation. - -## Prefer SDK When Possible - -Use `createAndRegisterLaunch()` from the SDK when the user does not need direct HTTP access. - -## CLI Equivalent - -```bash -mplx genesis launch create --name --symbol --image ... -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/launch - -## Related Pages - -- Register Launch: /docs/smart-contracts/genesis/integration-apis/register.md -- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/integration-apis/register.md b/public/smart-contracts/genesis/integration-apis/register.md deleted file mode 100644 index 078f9eb9..00000000 --- a/public/smart-contracts/genesis/integration-apis/register.md +++ /dev/null @@ -1,42 +0,0 @@ -# Metaplex Genesis API: Register Launch - -Use this agent page when the user wants to register an already-created Genesis launch after onchain transactions confirm. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/integration-apis/register - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## API Endpoint - -```text -POST /v1/launches/register -``` - -Register only after the create transactions are confirmed onchain. - -## Prefer SDK When Possible - -Use `createAndRegisterLaunch()` for the common one-call flow, or `registerLaunch()` after custom transaction sending. - -## CLI Equivalent - -```bash -mplx genesis launch register --launchConfig -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/launch - -## Related Pages - -- Create Launch: /docs/smart-contracts/genesis/integration-apis/create-launch.md -- API Client SDK: /docs/smart-contracts/genesis/sdk/api-client.md diff --git a/public/smart-contracts/genesis/launch-pool.md b/public/smart-contracts/genesis/launch-pool.md deleted file mode 100644 index 718cc529..00000000 --- a/public/smart-contracts/genesis/launch-pool.md +++ /dev/null @@ -1,61 +0,0 @@ -# Metaplex Genesis: Launch Pool - -Use this agent page when the user wants a Genesis Launch Pool, fair launch, proportional token distribution, deposit, withdraw, transition, or claim flow. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/launch-pool - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user wants proportional distribution based on deposits. -- The user asks how to add a Launch Pool bucket. -- The user asks how users deposit, withdraw, transition, or claim in a launch pool. - -## SDK Functions - -- `addLaunchPoolBucketV2()` adds the Launch Pool bucket. -- `addUnlockedBucketV2()` commonly adds the treasury/end-behavior destination. -- `finalizeV2()` locks the configuration. -- `depositLaunchPoolV2()`, `withdrawLaunchPoolV2()`, `triggerBehaviors()`, and `claimLaunchPoolV2()` handle user lifecycle operations. - -## CLI Quick Reference - -```bash -mplx genesis bucket add-launch-pool \ - --allocation \ - --depositStart \ - --depositEnd \ - --claimStart \ - --claimEnd - -mplx genesis deposit --amount --bucketIndex -mplx genesis withdraw --amount --bucketIndex -mplx genesis transition --bucketIndex -mplx genesis claim --bucketIndex -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/launch-pool - -## Notes - -- Launch Pool distribution is proportional: user share of deposits determines user share of tokens. -- Add end behaviors and an unlocked bucket when collected funds should route to treasury/team. -- `--endBehavior` format is `:`, where `10000` means 100%. -- Wrap SOL before manual deposits when the quote token is SOL. - -## Related Pages - -- Getting Started: /docs/smart-contracts/genesis/getting-started.md -- Presale: /docs/smart-contracts/genesis/presale.md -- Full CLI launch pool docs: /docs/dev-tools/cli/genesis/launch-pool diff --git a/public/smart-contracts/genesis/presale.md b/public/smart-contracts/genesis/presale.md deleted file mode 100644 index a8c956f2..00000000 --- a/public/smart-contracts/genesis/presale.md +++ /dev/null @@ -1,60 +0,0 @@ -# Metaplex Genesis: Presale - -Use this agent page when the user wants a fixed-price Genesis token sale or presale. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/presale - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## When To Use - -- The user wants fixed-price token distribution. -- The user asks how to add a Presale bucket. -- The user asks how users deposit into or claim from a presale. - -## SDK Functions - -- `addPresaleBucketV2()` adds the Presale bucket. -- `addUnlockedBucketV2()` commonly adds the treasury/remainder bucket. -- `finalizeV2()` locks the configuration. -- `depositPresaleV2()` and `claimPresaleV2()` handle user operations. - -## CLI Quick Reference - -```bash -mplx genesis bucket add-presale \ - --allocation \ - --quoteCap \ - --depositStart \ - --depositEnd \ - --claimStart \ - --bucketIndex - -mplx genesis presale deposit --amount --bucketIndex -mplx genesis presale claim --bucketIndex -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/presale - -## Notes - -- Fixed price is `quoteCap / allocation`. -- `quoteCap` and `allocation` are in base units. -- Use `--minimumDeposit` and `--depositLimit` for deposit constraints. -- Wrap SOL before manual deposits when the quote token is SOL. - -## Related Pages - -- Launch Pool: /docs/smart-contracts/genesis/launch-pool.md -- Getting Started: /docs/smart-contracts/genesis/getting-started.md -- Full CLI presale docs: /docs/dev-tools/cli/genesis/presale diff --git a/public/smart-contracts/genesis/sdk/api-client.md b/public/smart-contracts/genesis/sdk/api-client.md deleted file mode 100644 index 3314ad8f..00000000 --- a/public/smart-contracts/genesis/sdk/api-client.md +++ /dev/null @@ -1,41 +0,0 @@ -# Metaplex Genesis: API Client - -Use this agent page when the user wants to create and register Genesis launches using the Genesis SDK API client. - -Human page: https://metaplex.com/docs/smart-contracts/genesis/sdk/api-client - -## Agent Routing - -- Default to SDK or API instructions when the user is building an app, backend, script, or integration. -- Use CLI commands when the user asks for terminal commands, manual setup, debugging, one-off execution, or verification. -- If both apply, use SDK or API first and include the CLI quick reference as an operational fallback. - -## Environment Prerequisites - -- For SDK or API operations, Umi must be installed, configured with an RPC endpoint, and configured with a signer wallet before sending transactions. -- For CLI operations, the Metaplex CLI must be installed and configured with an RPC endpoint and wallet/keypair before running state-changing commands. -- If the user only needs code examples or conceptual guidance, do not assume live wallet access is available. - -## SDK Functions - -- `createAndRegisterLaunch()` is the preferred high-level path. -- `createLaunch()` builds unsigned launch transactions. -- `registerLaunch()` registers a confirmed onchain launch with the Metaplex platform. -- Use the lower-level functions when custom signing, Jito bundles, retries, or server-side transaction senders are needed. - -## CLI Equivalent - -For users who want the CLI instead of SDK: - -```bash -mplx genesis launch create --name --symbol --image ... -mplx genesis launch register --launchConfig -``` - -Full CLI docs: /docs/dev-tools/cli/genesis/launch - -## Related Pages - -- Create Launch REST API: /docs/smart-contracts/genesis/integration-apis/create-launch.md -- Register Launch REST API: /docs/smart-contracts/genesis/integration-apis/register.md -- Bonding Curve launch guide: /docs/smart-contracts/genesis/bonding-curve-launch.md diff --git a/src/pages/en/agents/create-agent-token.md b/src/pages/en/agents/create-agent-token.md index cfddb460..fa05d892 100644 --- a/src/pages/en/agents/create-agent-token.md +++ b/src/pages/en/agents/create-agent-token.md @@ -2,7 +2,7 @@ title: Create an Agent Token metaTitle: Create an Agent Token with Metaplex Genesis | Metaplex Agents description: How to launch a bonding curve token on behalf of a Metaplex agent using the Genesis SDK — including automatic creator fee routing, first buy, devnet testing, and error handling. -agentSkill: /agents/create-agent-token.md +agentSkill: /agents.md keywords: - agent token - token launch diff --git a/src/pages/en/agents/index.md b/src/pages/en/agents/index.md index 213893ee..5e3501a3 100644 --- a/src/pages/en/agents/index.md +++ b/src/pages/en/agents/index.md @@ -2,7 +2,7 @@ title: Agent Kit metaTitle: Create & Run Agents on Solana | Agent Registry | Metaplex description: Create, register, and run autonomous agents on Solana. Use the Metaplex Agent skills and agent registry to manage your autonomous agents. -agentSkill: /agents/index.md +agentSkill: /agents.md tableOfContents: false keywords: - Solana agents diff --git a/src/pages/en/agents/mint-agent.md b/src/pages/en/agents/mint-agent.md index 69b171a2..5eab4c82 100644 --- a/src/pages/en/agents/mint-agent.md +++ b/src/pages/en/agents/mint-agent.md @@ -2,7 +2,7 @@ title: Mint an Agent metaTitle: Mint an Agent | Metaplex description: Create an onchain AI agent in a single transaction using the Metaplex API and the mpl-agent-registry SDK. The hosted API stores agent metadata and returns an unsigned transaction you sign and submit. -agentSkill: /agents/mint-agent.md +agentSkill: /agents.md keywords: - mint agent - agent registration diff --git a/src/pages/en/agents/register-agent.md b/src/pages/en/agents/register-agent.md index 0ddfdcb1..bd1982be 100644 --- a/src/pages/en/agents/register-agent.md +++ b/src/pages/en/agents/register-agent.md @@ -2,7 +2,7 @@ title: Register an Agent metaTitle: Register an Agent on Solana | Metaplex 014 Agent Registry description: Register an agent identity on the Metaplex 014 agent registry by binding an identity record to an MPL Core asset. -agentSkill: /agents/register-agent.md +agentSkill: /agents.md keywords: - register agent - agent identity diff --git a/src/pages/en/agents/run-agent.md b/src/pages/en/agents/run-agent.md index 2591ae13..117ed7b2 100644 --- a/src/pages/en/agents/run-agent.md +++ b/src/pages/en/agents/run-agent.md @@ -2,7 +2,7 @@ title: Read Agent Data metaTitle: Read Agent Data on Solana | Metaplex Agent Registry description: Verify agent registration and read agent identity data on Solana. -agentSkill: /agents/run-agent.md +agentSkill: /agents.md keywords: - read agent data - agent identity diff --git a/src/pages/en/agents/run-an-agent.md b/src/pages/en/agents/run-an-agent.md index a413d952..23b8f1c5 100644 --- a/src/pages/en/agents/run-an-agent.md +++ b/src/pages/en/agents/run-an-agent.md @@ -2,7 +2,7 @@ title: Run an Agent metaTitle: Run an Agent on Solana | Metaplex Agent Registry description: Set up an executive profile and delegate execution to run an autonomous agent on Solana. -agentSkill: /agents/run-an-agent.md +agentSkill: /agents.md keywords: - run agent - executive profile diff --git a/src/pages/en/agents/skill/how-it-works.md b/src/pages/en/agents/skill/how-it-works.md index 51e0bcc2..d274b5d4 100644 --- a/src/pages/en/agents/skill/how-it-works.md +++ b/src/pages/en/agents/skill/how-it-works.md @@ -2,7 +2,6 @@ title: How It Works metaTitle: How It Works | Metaplex Skill description: Understand the progressive disclosure architecture of the Metaplex Skill. -agentSkill: /agents/skill/how-it-works.md created: '02-23-2026' updated: '04-08-2026' keywords: diff --git a/src/pages/en/agents/skill/index.md b/src/pages/en/agents/skill/index.md index f0cbbdcd..dd71dd49 100644 --- a/src/pages/en/agents/skill/index.md +++ b/src/pages/en/agents/skill/index.md @@ -2,7 +2,6 @@ title: Metaplex Skill metaTitle: Metaplex Skill | Agents description: An Agent Skill that gives AI coding agents full knowledge of Metaplex programs, CLI commands, and SDK patterns. -agentSkill: /agents/skill.md keywords: - agent skill - AI coding agent diff --git a/src/pages/en/agents/skill/installation.md b/src/pages/en/agents/skill/installation.md index 153d02ab..c6a1f3c3 100644 --- a/src/pages/en/agents/skill/installation.md +++ b/src/pages/en/agents/skill/installation.md @@ -2,7 +2,6 @@ title: Installation metaTitle: Installation | Metaplex Skill description: Install the Metaplex Skill in Claude Code, Cursor, Copilot, or any AI coding agent. -agentSkill: /agents/skill/installation.md created: '02-23-2026' updated: '03-04-2026' keywords: diff --git a/src/pages/en/agents/skill/programs-and-operations.md b/src/pages/en/agents/skill/programs-and-operations.md index 736ae354..baa5210a 100644 --- a/src/pages/en/agents/skill/programs-and-operations.md +++ b/src/pages/en/agents/skill/programs-and-operations.md @@ -2,7 +2,6 @@ title: Programs & Operations metaTitle: Programs & Operations | Metaplex Skill description: Detailed breakdown of programs and operations covered by the Metaplex Skill. -agentSkill: /agents/skill/programs-and-operations.md created: '02-23-2026' updated: '04-08-2026' keywords: diff --git a/src/pages/en/agents/what-is-an-agent.md b/src/pages/en/agents/what-is-an-agent.md index d272a598..1e5acd6d 100644 --- a/src/pages/en/agents/what-is-an-agent.md +++ b/src/pages/en/agents/what-is-an-agent.md @@ -2,7 +2,7 @@ title: What Is an Agent? metaTitle: What Is an Agent on Solana? | Metaplex Agent Registry description: Autonomous agents on Solana are MPL Core assets with built-in wallets and on-chain identity records. Learn how agent identity, wallets, and execution delegation work. -agentSkill: /agents/what-is-an-agent.md +agentSkill: /agents.md keywords: - Solana agents - autonomous agents diff --git a/src/pages/en/smart-contracts/core/burn.md b/src/pages/en/smart-contracts/core/burn.md index 3b1ec08f..6a292e82 100644 --- a/src/pages/en/smart-contracts/core/burn.md +++ b/src/pages/en/smart-contracts/core/burn.md @@ -20,7 +20,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/burn-asset -agentSkill: /smart-contracts/core/burn.md +agentSkill: /smart-contracts/core.md howToSteps: - Install the SDK with npm install @metaplex-foundation/mpl-core - Fetch the Asset to verify ownership diff --git a/src/pages/en/smart-contracts/core/collections.md b/src/pages/en/smart-contracts/core/collections.md index 14fc1aa2..5467d72f 100644 --- a/src/pages/en/smart-contracts/core/collections.md +++ b/src/pages/en/smart-contracts/core/collections.md @@ -24,6 +24,7 @@ faqs: a: Yes, use the update instruction to change the Asset's collection. You need the appropriate authority on both the Asset and Collection. - q: What happens if I delete a Collection? a: Collections cannot be deleted while they contain Assets. Remove all Assets first, then the Collection account can be closed. +agentSkill: /smart-contracts/core.md --- ## Summary diff --git a/src/pages/en/smart-contracts/core/collections/create.md b/src/pages/en/smart-contracts/core/collections/create.md index 65f469d1..f88e58ed 100644 --- a/src/pages/en/smart-contracts/core/collections/create.md +++ b/src/pages/en/smart-contracts/core/collections/create.md @@ -18,7 +18,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/create-collection -agentSkill: /smart-contracts/core/collections/create.md +agentSkill: /smart-contracts/core.md howToSteps: - Install the mpl-core SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Upload collection metadata JSON to get a URI diff --git a/src/pages/en/smart-contracts/core/collections/fetch.md b/src/pages/en/smart-contracts/core/collections/fetch.md index 81533806..cd68bcfb 100644 --- a/src/pages/en/smart-contracts/core/collections/fetch.md +++ b/src/pages/en/smart-contracts/core/collections/fetch.md @@ -18,7 +18,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/fetch -agentSkill: /smart-contracts/core/collections/fetch.md +agentSkill: /smart-contracts/core.md --- `fetchCollection` retrieves a [Core Collection](/smart-contracts/core/collections) account from Solana by its address and deserialises it into a typed object. {% .lead %} diff --git a/src/pages/en/smart-contracts/core/collections/update.md b/src/pages/en/smart-contracts/core/collections/update.md index 2a410b31..df342462 100644 --- a/src/pages/en/smart-contracts/core/collections/update.md +++ b/src/pages/en/smart-contracts/core/collections/update.md @@ -26,6 +26,7 @@ howToTools: - Node.js - Umi framework - mpl-core SDK +agentSkill: /smart-contracts/core.md --- `updateCollection` and `updateCollectionPlugin` modify an existing [Core Collection's](/smart-contracts/core/collections) metadata and plugin configuration. {% .lead %} diff --git a/src/pages/en/smart-contracts/core/create-asset.md b/src/pages/en/smart-contracts/core/create-asset.md index 557fabd4..f182b049 100644 --- a/src/pages/en/smart-contracts/core/create-asset.md +++ b/src/pages/en/smart-contracts/core/create-asset.md @@ -19,7 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/create-asset -agentSkill: /smart-contracts/core/create-asset.md +agentSkill: /smart-contracts/core.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Upload metadata JSON to Arweave or IPFS to get a URI diff --git a/src/pages/en/smart-contracts/core/deserialization.md b/src/pages/en/smart-contracts/core/deserialization.md index 575ea4e4..972ecc95 100644 --- a/src/pages/en/smart-contracts/core/deserialization.md +++ b/src/pages/en/smart-contracts/core/deserialization.md @@ -17,6 +17,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust +agentSkill: /smart-contracts/core.md --- Digital assets on Core are composed of exactly **one onchain account** that contains both the base asset data and the plugin. That means that if we want to read that data we need to learn how to deserialize it. diff --git a/src/pages/en/smart-contracts/core/ecosystem-support.md b/src/pages/en/smart-contracts/core/ecosystem-support.md index a6f80f8f..cc7b593d 100644 --- a/src/pages/en/smart-contracts/core/ecosystem-support.md +++ b/src/pages/en/smart-contracts/core/ecosystem-support.md @@ -13,6 +13,7 @@ about: - Wallet compatibility - Ecosystem integrations proficiencyLevel: Beginner +agentSkill: /smart-contracts/core.md --- The table below includes the Core integration status of many of the major marketplaces, wallets, explorers, RPC providers, and other dapps across the ecosystem. Metaplex also offers a free, open-source UI for creating, transferring and viewing Core digital assets at [core.metaplex.com](https://core.metaplex.com/). diff --git a/src/pages/en/smart-contracts/core/execute-asset-signing.md b/src/pages/en/smart-contracts/core/execute-asset-signing.md index 8bc15a9f..c8228486 100644 --- a/src/pages/en/smart-contracts/core/execute-asset-signing.md +++ b/src/pages/en/smart-contracts/core/execute-asset-signing.md @@ -17,7 +17,7 @@ programmingLanguage: - Rust - JavaScript cli: /dev-tools/cli/core/execute -agentSkill: /smart-contracts/core/execute-asset-signing.md +agentSkill: /smart-contracts/core.md --- The MPL Core Execute instruction introduces the concept of **Asset Signers** to MPL Core Assets. diff --git a/src/pages/en/smart-contracts/core/external-plugins/adding-external-plugins.md b/src/pages/en/smart-contracts/core/external-plugins/adding-external-plugins.md index d442f032..0c1011c7 100644 --- a/src/pages/en/smart-contracts/core/external-plugins/adding-external-plugins.md +++ b/src/pages/en/smart-contracts/core/external-plugins/adding-external-plugins.md @@ -24,6 +24,7 @@ faqs: a: Yes. The Oracle account must exist before adding an Oracle plugin adapter. - q: What's the difference between adding at creation vs adding later? a: No functional difference. Adding at creation is more efficient (one transaction). Adding later requires a separate transaction. +agentSkill: /smart-contracts/core.md --- This guide shows how to **add External Plugins** (Oracle, AppData) to Core Assets and Collections. Add at creation time or to existing Assets/Collections. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/external-plugins/app-data.md b/src/pages/en/smart-contracts/core/external-plugins/app-data.md index a296e969..8171bde2 100644 --- a/src/pages/en/smart-contracts/core/external-plugins/app-data.md +++ b/src/pages/en/smart-contracts/core/external-plugins/app-data.md @@ -28,6 +28,7 @@ faqs: a: Yes. JSON and MsgPack schemas are automatically deserialized and indexed. Binary is stored as base64. - q: What is LinkedAppData? a: LinkedAppData is added to a Collection and allows the Data Authority to write to any Asset in that Collection without adding AppData to each Asset individually. +agentSkill: /smart-contracts/core.md --- The **AppData Plugin** provides secure, partitioned data storage on Core Assets. Third-party applications can store and read arbitrary data (JSON, MsgPack, or binary) with exclusive write access controlled by a Data Authority. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/external-plugins/oracle.md b/src/pages/en/smart-contracts/core/external-plugins/oracle.md index 5146aaec..d04021f0 100644 --- a/src/pages/en/smart-contracts/core/external-plugins/oracle.md +++ b/src/pages/en/smart-contracts/core/external-plugins/oracle.md @@ -28,6 +28,7 @@ faqs: a: Freeze Delegate is built-in and binary (frozen/unfrozen). Oracle allows custom logic - time-based, price-based, or any condition you implement. - q: Do I need to write a Solana program for Oracle? a: Yes. The Oracle account must be a Solana account with the correct structure. You can use Anchor or native Rust. +agentSkill: /smart-contracts/core.md --- The **Oracle Plugin** connects Core Assets to external Oracle accounts for custom validation logic. Reject transfers, burns, or updates based on time, price, ownership, or any custom rule you implement. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/external-plugins/overview.md b/src/pages/en/smart-contracts/core/external-plugins/overview.md index c80cf73f..5d726ea3 100644 --- a/src/pages/en/smart-contracts/core/external-plugins/overview.md +++ b/src/pages/en/smart-contracts/core/external-plugins/overview.md @@ -28,6 +28,7 @@ faqs: a: Yes. You can add multiple Oracle or AppData plugins to a single Asset, each with different configurations and authorities. - q: Are External Plugins indexed by DAS? a: Yes. AppData with JSON or MsgPack schemas is automatically indexed by DAS for easy querying. +agentSkill: /smart-contracts/core.md --- **External Plugins** connect Core Assets to external programs for advanced functionality. Use Oracle plugins for custom validation logic and AppData plugins for storing arbitrary data that third-party apps can read and write. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/external-plugins/removing-external-plugins.md b/src/pages/en/smart-contracts/core/external-plugins/removing-external-plugins.md index 49a07e0f..c82fd6c2 100644 --- a/src/pages/en/smart-contracts/core/external-plugins/removing-external-plugins.md +++ b/src/pages/en/smart-contracts/core/external-plugins/removing-external-plugins.md @@ -23,6 +23,7 @@ faqs: a: Yes. Read the AppData using fetchAsset() before removing the plugin if you need to preserve the data. - q: What happens to the rent? a: The rent from the plugin adapter is recovered and returned to the transaction payer. +agentSkill: /smart-contracts/core.md --- This guide shows how to **remove External Plugins** from Core Assets and Collections. Remove Oracle or AppData plugins when they're no longer needed. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/faq.md b/src/pages/en/smart-contracts/core/faq.md index 99dc8044..616d6c63 100644 --- a/src/pages/en/smart-contracts/core/faq.md +++ b/src/pages/en/smart-contracts/core/faq.md @@ -25,6 +25,7 @@ faqs: a: Core is cheaper (~80% lower costs), requires fewer accounts (1 vs 3+), uses less compute units, and has a flexible plugin system instead of scattered delegates. - q: Does Core Support Editions? a: Yes, using the Edition and Master Edition plugins. See the Print Editions guide for details. +agentSkill: /smart-contracts/core.md --- ## Why does the Core Asset and Collection accounts have both onchain and off-chain data? The Core Asset and Collection accounts both contain onchain data, yet both also include a `URI` attribute that points to an off-chain JSON file which provides additional data. Why is that? Can't we just store everything onchain? Well, there are several issues with storing data onchain: diff --git a/src/pages/en/smart-contracts/core/fetch.md b/src/pages/en/smart-contracts/core/fetch.md index 73ef4c65..9e784ffc 100644 --- a/src/pages/en/smart-contracts/core/fetch.md +++ b/src/pages/en/smart-contracts/core/fetch.md @@ -19,7 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/fetch -agentSkill: /smart-contracts/core/fetch.md +agentSkill: /smart-contracts/core.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Configure Umi with your RPC endpoint diff --git a/src/pages/en/smart-contracts/core/guides/anchor/anchor-staking-example.md b/src/pages/en/smart-contracts/core/guides/anchor/anchor-staking-example.md index 54686640..e0ad2ba6 100644 --- a/src/pages/en/smart-contracts/core/guides/anchor/anchor-staking-example.md +++ b/src/pages/en/smart-contracts/core/guides/anchor/anchor-staking-example.md @@ -24,6 +24,7 @@ howToTools: - Anchor framework - mpl-core Rust crate - Solana CLI +agentSkill: /smart-contracts/core.md --- This developer guide demonstrates how to create a staking program for your collection using Anchor leveraging the `Attribute` and `Freeze Delegate` plugins. This approach uses a smart contract for all the logic behind staking like time calculation and management of the state of the asset (staking/unstaking), but the data will not be saved in a PDA, like the standard before Core, but it will be saved on the asset itself. {% .lead %} ## Starting off: Understanding the Logic behind the program diff --git a/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-collection-with-anchor.md b/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-collection-with-anchor.md index 73d8f92a..89fe5961 100644 --- a/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-collection-with-anchor.md +++ b/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-collection-with-anchor.md @@ -25,6 +25,7 @@ howToTools: - Anchor framework - mpl-core Rust crate - Solana CLI +agentSkill: /smart-contracts/core.md --- This guide will demonstrate the use of the `mpl-core` Rust SDK crate to create a **Core NFT Collection** via CPI using the **Anchor** framework in a **Solana** program. {% callout title="What is Core?" %} diff --git a/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-nft-asset-with-anchor.md b/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-nft-asset-with-anchor.md index 090f0954..701a4c23 100644 --- a/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-nft-asset-with-anchor.md +++ b/src/pages/en/smart-contracts/core/guides/anchor/how-to-create-a-core-nft-asset-with-anchor.md @@ -25,6 +25,7 @@ howToTools: - Anchor framework - mpl-core Rust crate - Solana CLI +agentSkill: /smart-contracts/core.md --- This guide will demonstrate the use of the `mpl-core` Rust SDK crate to create a **Core NFT Asset** via CPI using the **Anchor** framework in a **Solana** program. {% callout title="What is Core?" %} diff --git a/src/pages/en/smart-contracts/core/guides/create-soulbound-nft-asset.md b/src/pages/en/smart-contracts/core/guides/create-soulbound-nft-asset.md index b096407a..69cb725d 100644 --- a/src/pages/en/smart-contracts/core/guides/create-soulbound-nft-asset.md +++ b/src/pages/en/smart-contracts/core/guides/create-soulbound-nft-asset.md @@ -25,6 +25,7 @@ howToTools: - Node.js - Umi framework - mpl-core SDK +agentSkill: /smart-contracts/core.md --- Soulbound NFTs are non-fungible tokens that are permanently bound to a specific wallet address and cannot be transferred to another owner. They are useful for representing achievements, credentials, or memberships that should remain tied to a specific identity. {% .lead %} ## Overview diff --git a/src/pages/en/smart-contracts/core/guides/immutability.md b/src/pages/en/smart-contracts/core/guides/immutability.md index eed6d6c8..91fcd36b 100644 --- a/src/pages/en/smart-contracts/core/guides/immutability.md +++ b/src/pages/en/smart-contracts/core/guides/immutability.md @@ -17,6 +17,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust +agentSkill: /smart-contracts/core.md --- ## What is Immutability? In the general context of Digital Assets immutability is often used referring to the metadata of a Token or NFT. In the past this was asked for by communities to make sure that a purchased Asset can not be changed in the future. With the additional functionality MPL Core offers it can make sense to add additional immutability features. This guide aims to provide information about those different options and how they can be used to tailor the immutability of a digital Asset to the needs of a project. diff --git a/src/pages/en/smart-contracts/core/guides/index.md b/src/pages/en/smart-contracts/core/guides/index.md index 8faa74e3..a47d2d8c 100644 --- a/src/pages/en/smart-contracts/core/guides/index.md +++ b/src/pages/en/smart-contracts/core/guides/index.md @@ -13,6 +13,7 @@ about: - Implementation guides - Code examples proficiencyLevel: Intermediate +agentSkill: /smart-contracts/core.md --- The following Guides for MPL Core are currently available: {% quick-links %} diff --git a/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-collection-with-javascript.md b/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-collection-with-javascript.md index 42924a12..70475003 100644 --- a/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-collection-with-javascript.md +++ b/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-collection-with-javascript.md @@ -28,6 +28,7 @@ howToTools: - Umi framework - mpl-core SDK - Irys or IPFS for storage +agentSkill: /smart-contracts/core.md --- This guide will demonstrate the use of the `@metaplex-foundation/mpl-core` Javascript sdk package to create a **Core Collection** using the Metaplex Core onchain program. {% callout title="What is Core?" %} diff --git a/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-nft-asset-with-javascript.md b/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-nft-asset-with-javascript.md index 6b34b25f..d0e89c57 100644 --- a/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-nft-asset-with-javascript.md +++ b/src/pages/en/smart-contracts/core/guides/javascript/how-to-create-a-core-nft-asset-with-javascript.md @@ -28,6 +28,7 @@ howToTools: - Umi framework - mpl-core SDK - Irys or IPFS for storage +agentSkill: /smart-contracts/core.md --- This guide will demonstrate the use of the `@metaplex-foundation/mpl-core` Javascript SDK package to create a **Core NFT Asset** using the Metaplex Core onchain program. {% callout title="What is Core?" %} diff --git a/src/pages/en/smart-contracts/core/guides/javascript/web2-typescript-staking-example.md b/src/pages/en/smart-contracts/core/guides/javascript/web2-typescript-staking-example.md index 167d0910..572c60b2 100644 --- a/src/pages/en/smart-contracts/core/guides/javascript/web2-typescript-staking-example.md +++ b/src/pages/en/smart-contracts/core/guides/javascript/web2-typescript-staking-example.md @@ -26,6 +26,7 @@ howToTools: - Umi framework - mpl-core SDK - Express or similar backend +agentSkill: /smart-contracts/core.md --- This developer guide demonstrates how to create a staking program for your collection using only TypeScript, leveraging the attribute plugin and freeze delegate. **This approach eliminates the need for a smart contract** to track staking time and manage staking/unstaking, making it more accessible for Web2 developer. ## Starting off: Understanding the Logic behind the program diff --git a/src/pages/en/smart-contracts/core/guides/loyalty-card-concept-guide.md b/src/pages/en/smart-contracts/core/guides/loyalty-card-concept-guide.md index b50df346..7f2a1aa4 100644 --- a/src/pages/en/smart-contracts/core/guides/loyalty-card-concept-guide.md +++ b/src/pages/en/smart-contracts/core/guides/loyalty-card-concept-guide.md @@ -24,6 +24,7 @@ howToTools: - Anchor framework - mpl-core Rust crate - Solana CLI +agentSkill: /smart-contracts/core.md --- ## Concept Guide: Setting Up Loyalty Cards with Metaplex Core and Plugins {% callout %} diff --git a/src/pages/en/smart-contracts/core/guides/onchain-ticketing-with-appdata.md b/src/pages/en/smart-contracts/core/guides/onchain-ticketing-with-appdata.md index 73e6d371..a234e30e 100644 --- a/src/pages/en/smart-contracts/core/guides/onchain-ticketing-with-appdata.md +++ b/src/pages/en/smart-contracts/core/guides/onchain-ticketing-with-appdata.md @@ -25,6 +25,7 @@ howToTools: - Anchor framework - mpl-core SDK - Solana CLI +agentSkill: /smart-contracts/core.md --- This developer guide leverages the new Appdata Plugin to **create a ticketing solution that could be used to generate tickets as digital assets and verified by an external source of trust other than the issuer, like for example a venue manager**. ## Introduction diff --git a/src/pages/en/smart-contracts/core/guides/oracle-plugin-example.md b/src/pages/en/smart-contracts/core/guides/oracle-plugin-example.md index 84625796..db439af9 100644 --- a/src/pages/en/smart-contracts/core/guides/oracle-plugin-example.md +++ b/src/pages/en/smart-contracts/core/guides/oracle-plugin-example.md @@ -26,6 +26,7 @@ howToTools: - mpl-core SDK - Solana CLI - Cron scheduler +agentSkill: /smart-contracts/core.md --- This developer guide leverages the new Oracle Plugin to **create an NFT collection that can only be traded during US market hours**. ## Introduction diff --git a/src/pages/en/smart-contracts/core/guides/print-editions.md b/src/pages/en/smart-contracts/core/guides/print-editions.md index df69899c..4d915f30 100644 --- a/src/pages/en/smart-contracts/core/guides/print-editions.md +++ b/src/pages/en/smart-contracts/core/guides/print-editions.md @@ -25,6 +25,7 @@ howToTools: - Node.js - Umi framework - mpl-core SDK +agentSkill: /smart-contracts/core.md --- ## Introduction ### What is an Edition? diff --git a/src/pages/en/smart-contracts/core/helpers.md b/src/pages/en/smart-contracts/core/helpers.md index fba47003..22a3e0d5 100644 --- a/src/pages/en/smart-contracts/core/helpers.md +++ b/src/pages/en/smart-contracts/core/helpers.md @@ -17,6 +17,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/core.md --- {% callout type="note" title="JS Helper Functions" %} The following helper functions are for the JS client. diff --git a/src/pages/en/smart-contracts/core/index.md b/src/pages/en/smart-contracts/core/index.md index c02afb10..caee0cb6 100644 --- a/src/pages/en/smart-contracts/core/index.md +++ b/src/pages/en/smart-contracts/core/index.md @@ -36,6 +36,7 @@ faqs: a: All major RPC providers supporting DAS (Digital Asset Standard) index Core assets. - q: Can I use Core for gaming assets? a: Yes. Core's plugin system makes it ideal for gaming with Attributes for on-chain stats, Freeze Delegate for locking items, and Transfer Delegate for marketplace integration. +agentSkill: /smart-contracts/core.md --- Metaplex Core ("Core") is the **next-generation NFT standard** on Solana. It uses a **single-account design** that reduces minting costs by 80%+ compared to alternatives, while providing **enforced royalties**, **collection-level operations**, and a **flexible plugin system** for custom behaviors. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/json-schema.md b/src/pages/en/smart-contracts/core/json-schema.md index f75d3526..6c12867d 100644 --- a/src/pages/en/smart-contracts/core/json-schema.md +++ b/src/pages/en/smart-contracts/core/json-schema.md @@ -13,6 +13,7 @@ about: - JSON format - Off-chain data proficiencyLevel: Beginner +agentSkill: /smart-contracts/core.md --- The off-chain JSON metadata for Metaplex Core assets is similar to the Metaplex Token Metadata standard. However, since more data can be stored on-chain in the asset itself using plugins, some of the data like attributes can in addition be stored on chain. ## Schema Examples diff --git a/src/pages/en/smart-contracts/core/plugins/addBlocker.md b/src/pages/en/smart-contracts/core/plugins/addBlocker.md index cb6613bd..645922ae 100644 --- a/src/pages/en/smart-contracts/core/plugins/addBlocker.md +++ b/src/pages/en/smart-contracts/core/plugins/addBlocker.md @@ -27,6 +27,7 @@ faqs: a: If AddBlocker is active, you cannot add new authority-managed plugins, even new ones released in the future. Plan accordingly. - q: Why would I use AddBlocker? a: To guarantee that the NFT's authority-managed plugin configuration is final. This provides assurance to collectors that royalties, attributes, and other critical settings cannot be modified. +agentSkill: /smart-contracts/core.md --- The **AddBlocker Plugin** prevents any new authority-managed plugins from being added to an Asset or Collection. Lock down your NFT configuration while still allowing owner-managed plugins. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/adding-plugins.md b/src/pages/en/smart-contracts/core/plugins/adding-plugins.md index 52b2dd29..cdf7bd7d 100644 --- a/src/pages/en/smart-contracts/core/plugins/adding-plugins.md +++ b/src/pages/en/smart-contracts/core/plugins/adding-plugins.md @@ -26,6 +26,7 @@ faqs: a: No. Owner Managed plugins always require the owner's signature to add, regardless of who signs. - q: Why can't I add a Permanent plugin? a: Permanent plugins can only be added during Asset/Collection creation. They cannot be added to existing accounts. +agentSkill: /smart-contracts/core.md --- This guide shows how to **add plugins** to Core Assets and Collections. Plugins add functionality like royalties, freezing, attributes, and delegate permissions. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/attribute.md b/src/pages/en/smart-contracts/core/plugins/attribute.md index 41dbf15f..ed1ad60f 100644 --- a/src/pages/en/smart-contracts/core/plugins/attribute.md +++ b/src/pages/en/smart-contracts/core/plugins/attribute.md @@ -33,6 +33,7 @@ faqs: a: There's no hard limit, but larger attribute lists increase rent cost. Keep data concise. - q: Can the owner update attributes? a: No. The Attributes plugin is Authority Managed, so only the update authority can modify it. +agentSkill: /smart-contracts/core.md --- The **Attributes Plugin** stores key-value pairs directly on-chain within Core Assets or Collections. Perfect for game stats, traits, and any data that on-chain programs need to read. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/autograph.md b/src/pages/en/smart-contracts/core/plugins/autograph.md index 0e9b62f5..94a49838 100644 --- a/src/pages/en/smart-contracts/core/plugins/autograph.md +++ b/src/pages/en/smart-contracts/core/plugins/autograph.md @@ -27,6 +27,7 @@ faqs: a: No. Once the owner enables the Autograph plugin, anyone can add their signature. The owner doesn't need to approve individual autographs. - q: What happens to autographs when an Asset is transferred? a: Autographs remain on the Asset. They are permanent records of who signed, regardless of ownership changes. +agentSkill: /smart-contracts/core.md --- The **Autograph Plugin** allows anyone to add their signature and a message to an Asset or Collection. Perfect for collectible signatures from artists, celebrities, or community members. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/bubblegum.md b/src/pages/en/smart-contracts/core/plugins/bubblegum.md index f8f67764..2679642a 100644 --- a/src/pages/en/smart-contracts/core/plugins/bubblegum.md +++ b/src/pages/en/smart-contracts/core/plugins/bubblegum.md @@ -16,6 +16,7 @@ proficiencyLevel: Advanced programmingLanguage: - JavaScript - TypeScript +agentSkill: /smart-contracts/core.md --- The `Bubblegum` Plugin is a `Authority Managed` plugin that allows you to create Collections that can be used for compressed NFTs. {% .lead %} This plugin can only be used on `MPL Core Collections`. diff --git a/src/pages/en/smart-contracts/core/plugins/burn-delegate.md b/src/pages/en/smart-contracts/core/plugins/burn-delegate.md index fdde0d0b..47c511ac 100644 --- a/src/pages/en/smart-contracts/core/plugins/burn-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/burn-delegate.md @@ -25,6 +25,7 @@ faqs: a: No. Regular Burn Delegate cannot burn frozen Assets. Use Permanent Burn Delegate if you need to burn frozen Assets. - q: When is Burn Delegate revoked? a: When the Asset is transferred to a new owner. The new owner would need to add a new Burn Delegate. +agentSkill: /smart-contracts/core.md --- The **Burn Delegate Plugin** allows a designated authority to burn Core Assets on behalf of the owner. Useful for game mechanics, subscription services, and automated asset lifecycle management. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/delegating-and-revoking-plugins.md b/src/pages/en/smart-contracts/core/plugins/delegating-and-revoking-plugins.md index 202213e4..790e4678 100644 --- a/src/pages/en/smart-contracts/core/plugins/delegating-and-revoking-plugins.md +++ b/src/pages/en/smart-contracts/core/plugins/delegating-and-revoking-plugins.md @@ -27,6 +27,7 @@ faqs: a: No. Setting authority to None makes the plugin permanently immutable. This cannot be reversed. - q: Can a delegate revoke themselves? a: Yes. A delegated authority can revoke their own access, which returns control to the default authority type. +agentSkill: /smart-contracts/core.md --- This guide shows how to **delegate and revoke plugin authorities** on Core Assets. Transfer control of plugins to other addresses or make plugin data permanently immutable. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/edition.md b/src/pages/en/smart-contracts/core/plugins/edition.md index 41c71b51..9b128cae 100644 --- a/src/pages/en/smart-contracts/core/plugins/edition.md +++ b/src/pages/en/smart-contracts/core/plugins/edition.md @@ -27,6 +27,7 @@ faqs: a: Yes, if the plugin authority is not set to None. The update authority can modify the number using updatePlugin. - q: What's the difference between Edition and Master Edition? a: Edition stores the individual number on an Asset. Master Edition stores collection-level data (max supply, edition name/URI) on a Collection. +agentSkill: /smart-contracts/core.md --- The **Edition Plugin** stores an edition number on individual Assets. Use it to create numbered prints like "1 of 100" for collectible series and limited editions. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/freeze-delegate.md b/src/pages/en/smart-contracts/core/plugins/freeze-delegate.md index 52cd95ec..8427cbe2 100644 --- a/src/pages/en/smart-contracts/core/plugins/freeze-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/freeze-delegate.md @@ -31,6 +31,7 @@ faqs: a: No. The Asset owner or update authority can still update metadata while frozen. Only transfers and burns are blocked. - q: How do I implement escrowless staking? a: Add Freeze Delegate with your staking program as authority. When user stakes, freeze the Asset. When user unstakes, thaw the Asset. The NFT never leaves the user's wallet. +agentSkill: /smart-contracts/core.md --- The **Freeze Delegate Plugin** allows you to freeze Core Assets, blocking transfers and burns while the asset remains in the owner's wallet. Perfect for escrowless staking, marketplace listings, and game mechanics. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/freeze-execute.md b/src/pages/en/smart-contracts/core/plugins/freeze-execute.md index 24646df8..e9e5ea39 100644 --- a/src/pages/en/smart-contracts/core/plugins/freeze-execute.md +++ b/src/pages/en/smart-contracts/core/plugins/freeze-execute.md @@ -17,6 +17,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust +agentSkill: /smart-contracts/core.md --- ## Overview The Freeze Execute Plugin is an `Owner Managed` plugin that allows freezing the Execute lifecycle event on an Asset. When frozen, the asset cannot execute arbitrary instructions through its Asset Signer PDA, effectively blocking any execute operations until unfrozen. diff --git a/src/pages/en/smart-contracts/core/plugins/immutableMetadata.md b/src/pages/en/smart-contracts/core/plugins/immutableMetadata.md index 803fb34b..20086c2c 100644 --- a/src/pages/en/smart-contracts/core/plugins/immutableMetadata.md +++ b/src/pages/en/smart-contracts/core/plugins/immutableMetadata.md @@ -27,6 +27,7 @@ faqs: a: Yes. You can add ImmutableMetadata during create() to ensure the metadata is locked from the start. - q: Why would I want immutable metadata? a: Immutable metadata provides permanent provenance - collectors know the NFT's name and associated metadata URI can never be changed, preventing rug-pulls. +agentSkill: /smart-contracts/core.md --- The **ImmutableMetadata Plugin** permanently locks the name and URI of Assets or Collections. Once added, the metadata cannot be changed by anyone, ensuring permanent provenance. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/index.md b/src/pages/en/smart-contracts/core/plugins/index.md index 91ba7adc..519ba0d8 100644 --- a/src/pages/en/smart-contracts/core/plugins/index.md +++ b/src/pages/en/smart-contracts/core/plugins/index.md @@ -18,7 +18,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust -agentSkill: /smart-contracts/core/plugins.md +agentSkill: /smart-contracts/core.md faqs: - q: Can I add plugins after an Asset is created? a: Yes, except for Permanent plugins. Owner Managed plugins require owner signature; Authority Managed plugins require update authority signature. diff --git a/src/pages/en/smart-contracts/core/plugins/master-edition.md b/src/pages/en/smart-contracts/core/plugins/master-edition.md index fcce44d0..373367dc 100644 --- a/src/pages/en/smart-contracts/core/plugins/master-edition.md +++ b/src/pages/en/smart-contracts/core/plugins/master-edition.md @@ -27,6 +27,7 @@ faqs: a: For proper print tracking, yes. Master Edition goes on the Collection, Edition goes on each Asset. They work together. - q: Can I add Master Edition to an existing Collection? a: Yes, unlike the Edition plugin on Assets, Master Edition can be added to existing Collections using addCollectionPlugin. +agentSkill: /smart-contracts/core.md --- The **Master Edition Plugin** groups numbered edition Assets under a Collection. Store maximum supply, edition names, and URIs to create print series like "Limited to 100 copies." {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/permanent-burn-delegate.md b/src/pages/en/smart-contracts/core/plugins/permanent-burn-delegate.md index 044a6ef7..7cb1a69a 100644 --- a/src/pages/en/smart-contracts/core/plugins/permanent-burn-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/permanent-burn-delegate.md @@ -27,6 +27,7 @@ faqs: a: The delegate can burn any individual Asset in the Collection, but not all at once. Each burn is a separate transaction. - q: Is this safe to use? a: Use with caution. The delegate can burn Assets at any time without owner approval. Only assign to trusted programs or addresses. +agentSkill: /smart-contracts/core.md --- The **Permanent Burn Delegate Plugin** provides irrevocable burn authority that persists forever. The delegate can burn Assets even when frozen, making it ideal for games and subscription services. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/permanent-freeze-delegate.md b/src/pages/en/smart-contracts/core/plugins/permanent-freeze-delegate.md index 8efb127b..a2d57d60 100644 --- a/src/pages/en/smart-contracts/core/plugins/permanent-freeze-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/permanent-freeze-delegate.md @@ -25,6 +25,7 @@ faqs: a: No. When Permanent Freeze Delegate is on a Collection, freezing affects all Assets at once. Use Asset-level Permanent Freeze Delegate for individual control. - q: Can a permanently frozen Asset be burned? a: Only if there's also a Permanent Burn Delegate. Regular Burn Delegate cannot burn frozen Assets, but Permanent Burn Delegate uses forceApprove. +agentSkill: /smart-contracts/core.md --- The **Permanent Freeze Delegate Plugin** provides irrevocable freeze authority that persists across transfers. Use it for soulbound tokens, collection-wide freezing, and permanent lock mechanisms. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/permanent-transfer-delegate.md b/src/pages/en/smart-contracts/core/plugins/permanent-transfer-delegate.md index 90b6b305..67c2a37e 100644 --- a/src/pages/en/smart-contracts/core/plugins/permanent-transfer-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/permanent-transfer-delegate.md @@ -25,6 +25,7 @@ faqs: a: No. Permanent plugins can only be added at Asset creation time. Use regular Transfer Delegate for existing Assets. - q: How does Collection-level Permanent Transfer Delegate work? a: The delegate can transfer any individual Asset in the Collection, but not all at once. Each transfer is a separate transaction. +agentSkill: /smart-contracts/core.md --- The **Permanent Transfer Delegate Plugin** provides irrevocable transfer authority that persists forever. Unlike regular Transfer Delegate, this authority is never revoked and can transfer Assets repeatedly. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/removing-plugins.md b/src/pages/en/smart-contracts/core/plugins/removing-plugins.md index 4deda0b5..5625f9c0 100644 --- a/src/pages/en/smart-contracts/core/plugins/removing-plugins.md +++ b/src/pages/en/smart-contracts/core/plugins/removing-plugins.md @@ -28,6 +28,7 @@ faqs: a: Permanent plugins cannot be removed after creation, though their settings can still be adjusted. This is by design for use cases that require guaranteed plugin presence. - q: Can I remove a plugin from a Collection and its Assets at once? a: No. Collection plugins and Asset plugins are managed separately. However, removing a Collection plugin can affect Assets that inherit from it (e.g., Assets without their own Royalties plugin will no longer have royalties enforced). +agentSkill: /smart-contracts/core.md --- This guide shows how to **remove plugins** from Core Assets and Collections. Removing a plugin deletes its data and functionality. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/royalties.md b/src/pages/en/smart-contracts/core/plugins/royalties.md index 764f45f4..6e5d35fb 100644 --- a/src/pages/en/smart-contracts/core/plugins/royalties.md +++ b/src/pages/en/smart-contracts/core/plugins/royalties.md @@ -31,6 +31,7 @@ faqs: a: Use ruleSet('None'). Any program can transfer the asset and royalties are advisory only. - q: Can I change royalties after minting? a: Yes. Use updatePlugin for assets or updateCollectionPlugin for collections if you have the authority. +agentSkill: /smart-contracts/core.md --- The **Royalties Plugin** enforces creator royalties on secondary sales of Core Assets. It specifies the royalty percentage, creator split, and which programs (marketplaces) are allowed or denied from transferring the asset. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/transfer-delegate.md b/src/pages/en/smart-contracts/core/plugins/transfer-delegate.md index 1fc8d7ca..1fdda126 100644 --- a/src/pages/en/smart-contracts/core/plugins/transfer-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/transfer-delegate.md @@ -27,6 +27,7 @@ faqs: a: No. Frozen Assets block all transfers including delegate transfers. Use Permanent Transfer Delegate with a Permanent Freeze Delegate for complex escrow scenarios. - q: Does the owner need to approve each transfer? a: No. Once the Transfer Delegate is set, the delegate can transfer without owner approval. However, they can only do it once before authority is revoked. +agentSkill: /smart-contracts/core.md --- The **Transfer Delegate Plugin** allows a designated authority to transfer Core Assets on behalf of the owner. Essential for escrowless marketplace sales, game mechanics, and subscription services. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/update-delegate.md b/src/pages/en/smart-contracts/core/plugins/update-delegate.md index 77c7ccbf..a4e92f03 100644 --- a/src/pages/en/smart-contracts/core/plugins/update-delegate.md +++ b/src/pages/en/smart-contracts/core/plugins/update-delegate.md @@ -27,6 +27,7 @@ faqs: a: There's no hard limit, but more delegates increase account size and rent. Keep the list reasonable. - q: Does Update Delegate work on Collections? a: Yes. Adding Update Delegate to a Collection allows delegates to update collection metadata and collection-level plugins. +agentSkill: /smart-contracts/core.md --- The **Update Delegate Plugin** allows you to grant update permissions to additional addresses. Useful when third parties need to modify Asset metadata without being the primary update authority. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/plugins/update-plugins.md b/src/pages/en/smart-contracts/core/plugins/update-plugins.md index 3580eaad..e21f25b1 100644 --- a/src/pages/en/smart-contracts/core/plugins/update-plugins.md +++ b/src/pages/en/smart-contracts/core/plugins/update-plugins.md @@ -17,6 +17,7 @@ programmingLanguage: - JavaScript - TypeScript cli: /dev-tools/cli/core/plugins +agentSkill: /smart-contracts/core.md --- Many plugins on MPL Core Assets and Collections can be updated after they've been added. The `updatePlugin` function allows you to modify plugin data, such as changing attributes, updating royalties, or modifying freeze states. {% totem %} diff --git a/src/pages/en/smart-contracts/core/plugins/verified-creators.md b/src/pages/en/smart-contracts/core/plugins/verified-creators.md index f94ac155..348342d3 100644 --- a/src/pages/en/smart-contracts/core/plugins/verified-creators.md +++ b/src/pages/en/smart-contracts/core/plugins/verified-creators.md @@ -27,6 +27,7 @@ faqs: a: Yes. Assets inherit the creators array from their Collection. Individual Assets can also have their own Verified Creators plugin with different creators. - q: Can I use this for co-creator attribution? a: Yes. This is a common use case - multiple creators can all verify their involvement in creating an Asset or Collection. +agentSkill: /smart-contracts/core.md --- The **Verified Creators Plugin** stores a list of verified creator signatures on Assets or Collections. Prove creatorship publicly without affecting royalty distribution. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/sdk/index.md b/src/pages/en/smart-contracts/core/sdk/index.md index e73022d9..e9fd0ce9 100644 --- a/src/pages/en/smart-contracts/core/sdk/index.md +++ b/src/pages/en/smart-contracts/core/sdk/index.md @@ -16,6 +16,7 @@ programmingLanguage: - JavaScript - TypeScript - Rust +agentSkill: /smart-contracts/core.md --- Select the language / library you want to use below to get started with the new Metaplex Core Standard. {% quick-links %} diff --git a/src/pages/en/smart-contracts/core/sdk/javascript.md b/src/pages/en/smart-contracts/core/sdk/javascript.md index 6963f2f5..08b09a42 100644 --- a/src/pages/en/smart-contracts/core/sdk/javascript.md +++ b/src/pages/en/smart-contracts/core/sdk/javascript.md @@ -30,6 +30,7 @@ faqs: a: Use transactionBuilder() to combine instructions, but be aware of Solana's transaction size limits (~1232 bytes). For large batches, send multiple transactions. - q: Can I use this SDK in React/Next.js? a: Yes. The SDK works in both browser and Node.js environments. For React, use wallet adapters from @solana/wallet-adapter-react with Umi's wallet adapter identity. +agentSkill: /smart-contracts/core.md --- The **Metaplex Core JavaScript SDK** (`@metaplex-foundation/mpl-core`) provides a complete TypeScript/JavaScript interface for interacting with Core Assets and Collections on Solana. Built on the [Umi framework](/dev-tools/umi), it offers type-safe methods for all Core operations. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/sdk/rust.md b/src/pages/en/smart-contracts/core/sdk/rust.md index 162c152e..d5d85a76 100644 --- a/src/pages/en/smart-contracts/core/sdk/rust.md +++ b/src/pages/en/smart-contracts/core/sdk/rust.md @@ -15,6 +15,7 @@ about: proficiencyLevel: Intermediate programmingLanguage: - Rust +agentSkill: /smart-contracts/core.md --- Metaplex provides a Rust library that can be used to interact with the MPL-Core program. The Rust library can be used in rust scripts/builds as well as onchain programs via CPI instructions. ## Installation diff --git a/src/pages/en/smart-contracts/core/tm-differences.md b/src/pages/en/smart-contracts/core/tm-differences.md index 8cd5dd37..b91b112a 100644 --- a/src/pages/en/smart-contracts/core/tm-differences.md +++ b/src/pages/en/smart-contracts/core/tm-differences.md @@ -28,6 +28,7 @@ faqs: a: No. Core Assets don't use ATAs. Ownership is stored directly in the Asset account. - q: How do I verify creators in Core? a: Use the Verified Creators plugin. It works similarly to TM's creator array but is opt-in. +agentSkill: /smart-contracts/core.md --- Coming from **Token Metadata**? This guide explains what's different in Core, why it's better, and how to translate your TM knowledge to Core concepts. {% .lead %} {% callout title="Key Differences" %} diff --git a/src/pages/en/smart-contracts/core/transfer.md b/src/pages/en/smart-contracts/core/transfer.md index 24b7bce2..3a08bd59 100644 --- a/src/pages/en/smart-contracts/core/transfer.md +++ b/src/pages/en/smart-contracts/core/transfer.md @@ -19,7 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/transfer-asset -agentSkill: /smart-contracts/core/transfer.md +agentSkill: /smart-contracts/core.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Fetch the Asset to verify ownership and collection membership diff --git a/src/pages/en/smart-contracts/core/update.md b/src/pages/en/smart-contracts/core/update.md index 2f193e20..67645555 100644 --- a/src/pages/en/smart-contracts/core/update.md +++ b/src/pages/en/smart-contracts/core/update.md @@ -19,7 +19,7 @@ programmingLanguage: - TypeScript - Rust cli: /dev-tools/cli/core/update-asset -agentSkill: /smart-contracts/core/update.md +agentSkill: /smart-contracts/core.md howToSteps: - Install SDK with npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Fetch the Asset to get current state diff --git a/src/pages/en/smart-contracts/core/using-core-in-anchor.md b/src/pages/en/smart-contracts/core/using-core-in-anchor.md index f4926b56..82cedcb4 100644 --- a/src/pages/en/smart-contracts/core/using-core-in-anchor.md +++ b/src/pages/en/smart-contracts/core/using-core-in-anchor.md @@ -24,6 +24,7 @@ faqs: a: Yes. Use fetch_external_plugin() instead of fetch_plugin() with the appropriate key. - q: Where can I find all available instructions? a: See the mpl-core docs.rs instructions module for the complete API reference. +agentSkill: /smart-contracts/core.md --- Build **on-chain programs** that interact with Core Assets using Anchor. This guide covers installation, account deserialization, plugin access, and CPI patterns. {% .lead %} {% callout title="What You'll Learn" %} diff --git a/src/pages/en/smart-contracts/core/what-is-an-asset.md b/src/pages/en/smart-contracts/core/what-is-an-asset.md index fa096954..240a01af 100644 --- a/src/pages/en/smart-contracts/core/what-is-an-asset.md +++ b/src/pages/en/smart-contracts/core/what-is-an-asset.md @@ -29,6 +29,7 @@ faqs: a: Most major Solana marketplaces support Core Assets. Check Ecosystem Support for the current list. - q: What happens if off-chain metadata goes offline? a: The Asset still exists on-chain with name and URI, but image and off-chain attributes won't load. On-chain attributes (via the Attributes plugin) remain accessible. Use permanent storage like Arweave or pinned IPFS. +agentSkill: /smart-contracts/core.md --- This page explains **what a Core Asset is** and how it differs from traditional Solana NFTs. Understand the account structure, collection relationships, and metadata storage. {% .lead %} {% callout title="Key Concepts" %} diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md b/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md index 9d49ed07..b034f1c4 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve-launch.md @@ -26,7 +26,7 @@ programmingLanguage: - TypeScript - Bash cli: /dev-tools/cli/genesis/launch -agentSkill: /smart-contracts/genesis/bonding-curve-launch.md +agentSkill: /smart-contracts/genesis.md proficiencyLevel: Intermediate created: '04-07-2026' updated: '04-09-2026' diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md b/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md index be5beac0..1ee560a5 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve-swaps.md @@ -26,7 +26,7 @@ programmingLanguage: - TypeScript - Bash cli: /dev-tools/cli/genesis/bonding-curve -agentSkill: /smart-contracts/genesis/bonding-curve-swaps.md +agentSkill: /smart-contracts/genesis.md proficiencyLevel: Intermediate howToSteps: - Install the Genesis SDK and configure a Umi instance diff --git a/src/pages/en/smart-contracts/genesis/bonding-curve.md b/src/pages/en/smart-contracts/genesis/bonding-curve.md index df61a204..4d288a5b 100644 --- a/src/pages/en/smart-contracts/genesis/bonding-curve.md +++ b/src/pages/en/smart-contracts/genesis/bonding-curve.md @@ -16,7 +16,7 @@ about: - Token Launch - Genesis proficiencyLevel: Beginner -agentSkill: /smart-contracts/genesis/bonding-curve.md +agentSkill: /smart-contracts/genesis.md faqs: - q: What is the difference between a bonding curve and a launch pool? a: A bonding curve lets users buy and sell continuously from the moment trading opens — price moves with every trade. A launch pool has a fixed deposit window and settles at a single clearing price at the end. diff --git a/src/pages/en/smart-contracts/genesis/getting-started.md b/src/pages/en/smart-contracts/genesis/getting-started.md index efa1d36a..a8e4f503 100644 --- a/src/pages/en/smart-contracts/genesis/getting-started.md +++ b/src/pages/en/smart-contracts/genesis/getting-started.md @@ -19,7 +19,7 @@ about: - Launch lifecycle - Token distribution proficiencyLevel: Beginner -agentSkill: /smart-contracts/genesis/getting-started.md +agentSkill: /smart-contracts/genesis.md faqs: - q: What does initializing a Genesis Account create? a: It creates a new SPL token with metadata, a master coordination account, and holds the total token supply in escrow for distribution. diff --git a/src/pages/en/smart-contracts/genesis/index.md b/src/pages/en/smart-contracts/genesis/index.md index 12f9d842..8e922731 100644 --- a/src/pages/en/smart-contracts/genesis/index.md +++ b/src/pages/en/smart-contracts/genesis/index.md @@ -25,7 +25,7 @@ about: - Genesis protocol - Fair distribution proficiencyLevel: Beginner -agentSkill: /smart-contracts/genesis/index.md +agentSkill: /smart-contracts/genesis.md faqs: - q: What is Genesis? a: Genesis is a Metaplex smart contract for Token Generation Events (TGE) on Solana. It provides on-chain infrastructure for presales, launch pools, and auctions. diff --git a/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md b/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md index 5dcf70b4..3ede9356 100644 --- a/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md +++ b/src/pages/en/smart-contracts/genesis/integration-apis/create-launch.md @@ -17,7 +17,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript -agentSkill: /smart-contracts/genesis/integration-apis/create-launch.md +agentSkill: /smart-contracts/genesis.md --- Build the on-chain transactions for a new Genesis token launch. Returns unsigned transactions that must be signed and sent before calling [Register Launch](/smart-contracts/genesis/integration-apis/register). {% .lead %} diff --git a/src/pages/en/smart-contracts/genesis/integration-apis/register.md b/src/pages/en/smart-contracts/genesis/integration-apis/register.md index 79750f66..40c58b0b 100644 --- a/src/pages/en/smart-contracts/genesis/integration-apis/register.md +++ b/src/pages/en/smart-contracts/genesis/integration-apis/register.md @@ -17,7 +17,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript -agentSkill: /smart-contracts/genesis/integration-apis/register.md +agentSkill: /smart-contracts/genesis.md --- Register a Genesis launch after the on-chain transactions from [Create Launch](/smart-contracts/genesis/integration-apis/create-launch) have been confirmed. The endpoint validates the on-chain state, creates the launch listing, and returns a launch page URL. {% .lead %} diff --git a/src/pages/en/smart-contracts/genesis/launch-pool.md b/src/pages/en/smart-contracts/genesis/launch-pool.md index acf298db..2248c211 100644 --- a/src/pages/en/smart-contracts/genesis/launch-pool.md +++ b/src/pages/en/smart-contracts/genesis/launch-pool.md @@ -25,7 +25,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript -agentSkill: /smart-contracts/genesis/launch-pool.md +agentSkill: /smart-contracts/genesis.md howToSteps: - Initialize a Genesis Account with your token - Add a Launch Pool bucket with deposit window configuration diff --git a/src/pages/en/smart-contracts/genesis/presale.md b/src/pages/en/smart-contracts/genesis/presale.md index 04105d55..cb512c0a 100644 --- a/src/pages/en/smart-contracts/genesis/presale.md +++ b/src/pages/en/smart-contracts/genesis/presale.md @@ -24,7 +24,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript -agentSkill: /smart-contracts/genesis/presale.md +agentSkill: /smart-contracts/genesis.md howToSteps: - Initialize a Genesis Account with your token allocation - Add a Presale bucket with price and cap configuration diff --git a/src/pages/en/smart-contracts/genesis/sdk/api-client.md b/src/pages/en/smart-contracts/genesis/sdk/api-client.md index 823b5aab..3003d8c0 100644 --- a/src/pages/en/smart-contracts/genesis/sdk/api-client.md +++ b/src/pages/en/smart-contracts/genesis/sdk/api-client.md @@ -18,7 +18,7 @@ proficiencyLevel: Intermediate programmingLanguage: - JavaScript - TypeScript -agentSkill: /smart-contracts/genesis/sdk/api-client.md +agentSkill: /smart-contracts/genesis.md --- The Genesis API client provides high-level functions for creating and registering token launches. It handles transaction building, signing, and on-chain registration through a simple interface built on Umi. {% .lead %} diff --git a/tailwind.config.js b/tailwind.config.js index a0125963..5dec2d97 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -103,6 +103,19 @@ module.exports = { '8xl': '88rem' }, colors: { + blue: { + 50: 'hsl(228 100% 97% / )', + 100: 'hsl(228 96% 93% / )', + 200: 'hsl(228 96% 86% / )', + 300: 'hsl(228 94% 74% / )', + 400: 'hsl(228 96% 66% / )', + 500: 'hsl(228 100% 57% / )', + 600: 'hsl(228 96% 46% / )', + 700: 'hsl(228 96% 37% / )', + 800: 'hsl(228 90% 29% / )', + 900: 'hsl(228 84% 21% / )', + 950: 'hsl(228 80% 14% / )', + }, accent: { DEFAULT: 'hsl(var(--accent))', foreground: 'hsl(var(--accent-foreground))' From ef9e3f9b30d779ce7a89499a87fcdaeb8a41944a Mon Sep 17 00:00:00 2001 From: Tony Boyle Date: Sat, 11 Apr 2026 13:03:45 +0100 Subject: [PATCH 3/4] feat: inject agent skill callout into article body for AI agent visibility Plain-text link in the article body is reliably picked up by readability-style extractors, unlike the header SkillBadge which can be dropped as UI chrome. Renders automatically on any page with agentSkill frontmatter. --- src/components/Layout.jsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx index 2d30965a..b637b8c8 100644 --- a/src/components/Layout.jsx +++ b/src/components/Layout.jsx @@ -172,7 +172,19 @@ export function Layout({ children, page }) {
)} - {children} + + {page.agentSkill && ( +
+ AI agent:{' '} + A{' '} + + skill file is available for this page + + {' '}— read it before proceeding for task routing, CLI/SDK patterns, and workflow guidance. +
+ )} + {children} +
{!page.product.isFallbackProduct && (page.activeSection?.previousPage || page.activeSection?.nextPage) && (
From facd2e53a6618fdef15a1feb5d23df50f9abeebd Mon Sep 17 00:00:00 2001 From: Tony Boyle Date: Sat, 11 Apr 2026 14:09:16 +0100 Subject: [PATCH 4/4] feat: strengthen agent skill callout wording to mandatory instruction 'Available' and 'read before proceeding' were treated as optional by agents. Updated to imperative: required, do not answer from this page alone, first read. --- src/components/Layout.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx index b637b8c8..1d99a08c 100644 --- a/src/components/Layout.jsx +++ b/src/components/Layout.jsx @@ -175,12 +175,12 @@ export function Layout({ children, page }) { {page.agentSkill && (
- AI agent:{' '} - A{' '} + Required for AI agents:{' '} + Do not answer from this page alone. First read the{' '} - skill file is available for this page + skill file for this page - {' '}— read it before proceeding for task routing, CLI/SDK patterns, and workflow guidance. + {' '}— it contains required task routing, CLI/SDK workflow, and execution guidance. Return here afterwards if needed.
)} {children}