{
  "schemaVersion": "1.0",
  "item": {
    "slug": "slv-grpc-geyser",
    "name": "Slv Grpc Geyser",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/POPPIN-FUMI/slv-grpc-geyser",
    "canonicalUrl": "https://clawhub.ai/POPPIN-FUMI/slv-grpc-geyser",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/slv-grpc-geyser",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=slv-grpc-geyser",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "AGENT.md",
      "README.md",
      "SKILL.md",
      "examples/inventory.yml",
      "scripts/setup.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/slv-grpc-geyser"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/slv-grpc-geyser",
    "agentPageUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "SLV gRPC Geyser Skill",
        "body": "Ansible playbooks and Jinja2 templates for deploying and managing Solana gRPC Geyser streaming nodes."
      },
      {
        "title": "Supported Configurations",
        "body": "ConfigDescriptionYellowstone gRPCStandard Geyser gRPC plugin (Triton/rpcpool)Richat gRPCRichat Geyser plugin (lamports-dev)"
      },
      {
        "title": "Directory Structure",
        "body": "ansible/\n  mainnet-rpc/   — Playbooks (gRPC Geyser uses mainnet-rpc playbooks)\n  cmn/           — Shared common playbooks\njinja/\n  mainnet-rpc/   — Jinja2 templates\n  cmn/           — Shared templates"
      },
      {
        "title": "CLI Command ↔ Playbook Mapping",
        "body": "gRPC Geyser nodes are managed via slv r (RPC) commands with rpc_type set to Geyser gRPC or Index RPC + gRPC.\n\nCLI CommandPlaybookDescriptionslv r deploymainnet-rpc/init.ymlFull gRPC Geyser node initializationslv r startmainnet-rpc/start_node.ymlStart nodeslv r stopmainnet-rpc/stop_node.ymlStop nodeslv r restartmainnet-rpc/restart_node.ymlRestart nodeslv r build:solanamainnet-rpc/install_solana.ymlBuild Solana from sourceslv r update:geysermainnet-rpc/update_geyser.ymlUpdate Geyser pluginslv r update:scriptmainnet-rpc/update_startup_config.ymlUpdate start-validator.shslv r setup:firedancermainnet-rpc/setup_firedancer.ymlSetup Firedancer"
      },
      {
        "title": "Key Playbooks",
        "body": "PlaybookDescriptioninit.ymlFull gRPC Geyser node initializationinit_richat_geyser.ymlRichat Geyser initializationgeyser_build.ymlBuild Yellowstone gRPC from GitHub sourcegeyser_richat_build.ymlBuild Richat plugin from GitHub sourceinstall_richat.ymlInstall Richat pluginupdate_geyser.ymlUpdate Geyser pluginrestart_node.ymlRestart nodestart_node.yml / stop_node.ymlStart/stop nodeupdate_startup_config.ymlUpdate start-validator.sh from templatesetup_firedancer.ymlSetup Firedancerrun_snapshot_finder.ymlFind and download best snapshotrun_restarter.ymlRun restarter script"
      },
      {
        "title": "Yellowstone gRPC (geyser_build.yml)",
        "body": "Clones from https://github.com/rpcpool/yellowstone-grpc\nBuilds with cargo build --release\nProduces libyellowstone_grpc_geyser.so\nConfig template: jinja/mainnet-rpc/geyser.json.j2"
      },
      {
        "title": "Richat (geyser_richat_build.yml)",
        "body": "Clones from https://github.com/lamports-dev/richat\nBuilds with cargo build --release\nProduces librichat_plugin_agave.so\nConfig template: jinja/mainnet-rpc/geyser-richat.json.j2\nService template: jinja/mainnet-rpc/richat.service.j2\nSettings template: jinja/mainnet-rpc/richat-setting.yml.j2"
      },
      {
        "title": "Key Variables (extra_vars)",
        "body": "VariableDescriptionDefaultrpc_typeMust be Geyser gRPC or Index RPC + gRPC—validator_typeClient type (agave, jito, firedancer-agave, etc.)—solana_versionSolana/Agave version—yellowstone_grpc_versionYellowstone gRPC version tag—richat_versionRichat plugin version (e.g. richat-v8.1.0)—snapshot_urlSnapshot download URL—port_grpcgRPC listen port10000limit_ledger_sizeLedger size limit100000000"
      },
      {
        "title": "Jinja Templates",
        "body": "TemplateDescriptionstart-validator.sh.j2Main start script (branches by rpc_type)start-mainnet-rpc-grpc.sh.j2gRPC-specific start scriptgeyser.json.j2Yellowstone gRPC configgeyser-richat.json.j2Richat gRPC configrichat-setting.yml.j2Richat settingsrichat.service.j2Richat systemd servicefiredancer-config.toml.j2Firedancer configfiredancer.service.j2Firedancer systemd servicesolv.service.j2Solv systemd servicegenerate_configs.sh.j2Config generation script"
      },
      {
        "title": "Geyser Plugin Sources",
        "body": "Both plugins are built from source (no binary downloads):\n\nYellowstone gRPC: https://github.com/rpcpool/yellowstone-grpc\nRichat: https://github.com/lamports-dev/richat"
      },
      {
        "title": "Usage",
        "body": "# Deploy a new gRPC Geyser node\nansible-playbook -i inventory mainnet-rpc/init.yml \\\n  -e '{\"rpc_type\":\"Geyser gRPC\",\"solana_version\":\"3.1.8\",\"yellowstone_grpc_version\":\"v6.0.0\",\"snapshot_url\":\"https://...\"}'\n\n# Build/update Richat plugin\nansible-playbook -i inventory mainnet-rpc/geyser_richat_build.yml \\\n  -e '{\"richat_version\":\"richat-v8.1.0\"}'\n\nNo versions.yml required — all variables can be passed via extra_vars."
      },
      {
        "title": "Interactive Deployment Flow",
        "body": "See AGENT.md for the full step-by-step flow and examples/inventory.yml for output format."
      },
      {
        "title": "Required Variables",
        "body": "VariablePromptValidationserver_ip\"Target server IP?\"Valid IPv4region\"Server region?\"Stringrpc_type\"Geyser gRPC or Index RPC + gRPC?\"Geyser gRPC, Index RPC + gRPCvalidator_type\"Underlying client?\"agave, jito, jito-bam, firedancer-agavesolana_version\"Solana version? (default: 3.1.8)\"Semveridentity_account\"Node identity pubkey?\"Base58 pubkeysnapshot_url\"Snapshot URL? (auto for ERPC)\"URL (cannot be empty for init)"
      },
      {
        "title": "Plugin Selection (choose ONE)",
        "body": "PluginVersion VariableSourceOutputYellowstone gRPCyellowstone_grpc_versiongithub.com/rpcpool/yellowstone-grpclibyellowstone_grpc_geyser.soRichatrichat_versiongithub.com/lamports-dev/richatlibrichat_plugin_agave.so\n\nBoth are built from source (no pre-built binaries). Build time: ~15-30 min.\nOnly collect the version variable for the selected plugin."
      },
      {
        "title": "Conditionally Required Variables",
        "body": "VariableWhen Requiredjito_versionjito/jito-bam typesfiredancer_versionfiredancer typesshred_receiver_addressjito/jito-bam (auto by region)block_engine_urljito/jito-bam (auto by region)"
      },
      {
        "title": "Optional Variables",
        "body": "VariableDefaultWhen Requiredssh_usersolvAlwaysport_grpc10000Alwaysport_rpc8899 (ERPC: 7211)Alwayslimit_ledger_size100000000Alwaysdynamic_port_range8000-8025Alwaysallowed_ssh_ips—Strongly recommended (UFW)allowed_ips—Optional (UFW)"
      },
      {
        "title": "Optional: Reference RPC",
        "body": "VariableDescriptionDefaultreference_rpc_urlReference RPC endpoint for slot sync comparison (e.g., ERPC)—\n\nERPC API keys are free at https://erpc.global — enables full slot sync monitoring during deployment and updates."
      },
      {
        "title": "Pre-flight: Fresh Server Setup",
        "body": "ansible-playbook -i inventory.yml cmn/add_solv.yml \\\n  -e '{\"ansible_user\":\"ubuntu\"}' --become"
      },
      {
        "title": "Deployment Command",
        "body": "All paths relative to skill's ansible/ directory:\n\ncd /path/to/slv-grpc-geyser/ansible/\nansible-playbook -i inventory.yml mainnet-rpc/init.yml \\\n  -e '{\"rpc_type\":\"Geyser gRPC\",\"solana_version\":\"<version>\",\"richat_version\":\"<version>\"}'"
      }
    ],
    "body": "SLV gRPC Geyser Skill\n\nAnsible playbooks and Jinja2 templates for deploying and managing Solana gRPC Geyser streaming nodes.\n\nSupported Configurations\nConfig\tDescription\nYellowstone gRPC\tStandard Geyser gRPC plugin (Triton/rpcpool)\nRichat gRPC\tRichat Geyser plugin (lamports-dev)\nDirectory Structure\nansible/\n  mainnet-rpc/   — Playbooks (gRPC Geyser uses mainnet-rpc playbooks)\n  cmn/           — Shared common playbooks\njinja/\n  mainnet-rpc/   — Jinja2 templates\n  cmn/           — Shared templates\n\nCLI Command ↔ Playbook Mapping\n\ngRPC Geyser nodes are managed via slv r (RPC) commands with rpc_type set to Geyser gRPC or Index RPC + gRPC.\n\nCLI Command\tPlaybook\tDescription\nslv r deploy\tmainnet-rpc/init.yml\tFull gRPC Geyser node initialization\nslv r start\tmainnet-rpc/start_node.yml\tStart node\nslv r stop\tmainnet-rpc/stop_node.yml\tStop node\nslv r restart\tmainnet-rpc/restart_node.yml\tRestart node\nslv r build:solana\tmainnet-rpc/install_solana.yml\tBuild Solana from source\nslv r update:geyser\tmainnet-rpc/update_geyser.yml\tUpdate Geyser plugin\nslv r update:script\tmainnet-rpc/update_startup_config.yml\tUpdate start-validator.sh\nslv r setup:firedancer\tmainnet-rpc/setup_firedancer.yml\tSetup Firedancer\nKey Playbooks\nPlaybook\tDescription\ninit.yml\tFull gRPC Geyser node initialization\ninit_richat_geyser.yml\tRichat Geyser initialization\ngeyser_build.yml\tBuild Yellowstone gRPC from GitHub source\ngeyser_richat_build.yml\tBuild Richat plugin from GitHub source\ninstall_richat.yml\tInstall Richat plugin\nupdate_geyser.yml\tUpdate Geyser plugin\nrestart_node.yml\tRestart node\nstart_node.yml / stop_node.yml\tStart/stop node\nupdate_startup_config.yml\tUpdate start-validator.sh from template\nsetup_firedancer.yml\tSetup Firedancer\nrun_snapshot_finder.yml\tFind and download best snapshot\nrun_restarter.yml\tRun restarter script\nGeyser Build Details\nYellowstone gRPC (geyser_build.yml)\nClones from https://github.com/rpcpool/yellowstone-grpc\nBuilds with cargo build --release\nProduces libyellowstone_grpc_geyser.so\nConfig template: jinja/mainnet-rpc/geyser.json.j2\nRichat (geyser_richat_build.yml)\nClones from https://github.com/lamports-dev/richat\nBuilds with cargo build --release\nProduces librichat_plugin_agave.so\nConfig template: jinja/mainnet-rpc/geyser-richat.json.j2\nService template: jinja/mainnet-rpc/richat.service.j2\nSettings template: jinja/mainnet-rpc/richat-setting.yml.j2\nKey Variables (extra_vars)\nVariable\tDescription\tDefault\nrpc_type\tMust be Geyser gRPC or Index RPC + gRPC\t—\nvalidator_type\tClient type (agave, jito, firedancer-agave, etc.)\t—\nsolana_version\tSolana/Agave version\t—\nyellowstone_grpc_version\tYellowstone gRPC version tag\t—\nrichat_version\tRichat plugin version (e.g. richat-v8.1.0)\t—\nsnapshot_url\tSnapshot download URL\t—\nport_grpc\tgRPC listen port\t10000\nlimit_ledger_size\tLedger size limit\t100000000\nJinja Templates\nTemplate\tDescription\nstart-validator.sh.j2\tMain start script (branches by rpc_type)\nstart-mainnet-rpc-grpc.sh.j2\tgRPC-specific start script\ngeyser.json.j2\tYellowstone gRPC config\ngeyser-richat.json.j2\tRichat gRPC config\nrichat-setting.yml.j2\tRichat settings\nrichat.service.j2\tRichat systemd service\nfiredancer-config.toml.j2\tFiredancer config\nfiredancer.service.j2\tFiredancer systemd service\nsolv.service.j2\tSolv systemd service\ngenerate_configs.sh.j2\tConfig generation script\nGeyser Plugin Sources\n\nBoth plugins are built from source (no binary downloads):\n\nYellowstone gRPC: https://github.com/rpcpool/yellowstone-grpc\nRichat: https://github.com/lamports-dev/richat\nUsage\n# Deploy a new gRPC Geyser node\nansible-playbook -i inventory mainnet-rpc/init.yml \\\n  -e '{\"rpc_type\":\"Geyser gRPC\",\"solana_version\":\"3.1.8\",\"yellowstone_grpc_version\":\"v6.0.0\",\"snapshot_url\":\"https://...\"}'\n\n# Build/update Richat plugin\nansible-playbook -i inventory mainnet-rpc/geyser_richat_build.yml \\\n  -e '{\"richat_version\":\"richat-v8.1.0\"}'\n\n\nNo versions.yml required — all variables can be passed via extra_vars.\n\nInteractive Deployment Flow\n\nSee AGENT.md for the full step-by-step flow and examples/inventory.yml for output format.\n\nRequired Variables\nVariable\tPrompt\tValidation\nserver_ip\t\"Target server IP?\"\tValid IPv4\nregion\t\"Server region?\"\tString\nrpc_type\t\"Geyser gRPC or Index RPC + gRPC?\"\tGeyser gRPC, Index RPC + gRPC\nvalidator_type\t\"Underlying client?\"\tagave, jito, jito-bam, firedancer-agave\nsolana_version\t\"Solana version? (default: 3.1.8)\"\tSemver\nidentity_account\t\"Node identity pubkey?\"\tBase58 pubkey\nsnapshot_url\t\"Snapshot URL? (auto for ERPC)\"\tURL (cannot be empty for init)\nPlugin Selection (choose ONE)\nPlugin\tVersion Variable\tSource\tOutput\nYellowstone gRPC\tyellowstone_grpc_version\tgithub.com/rpcpool/yellowstone-grpc\tlibyellowstone_grpc_geyser.so\nRichat\trichat_version\tgithub.com/lamports-dev/richat\tlibrichat_plugin_agave.so\n\nBoth are built from source (no pre-built binaries). Build time: ~15-30 min. Only collect the version variable for the selected plugin.\n\nConditionally Required Variables\nVariable\tWhen Required\njito_version\tjito/jito-bam types\nfiredancer_version\tfiredancer types\nshred_receiver_address\tjito/jito-bam (auto by region)\nblock_engine_url\tjito/jito-bam (auto by region)\nOptional Variables\nVariable\tDefault\tWhen Required\nssh_user\tsolv\tAlways\nport_grpc\t10000\tAlways\nport_rpc\t8899 (ERPC: 7211)\tAlways\nlimit_ledger_size\t100000000\tAlways\ndynamic_port_range\t8000-8025\tAlways\nallowed_ssh_ips\t—\tStrongly recommended (UFW)\nallowed_ips\t—\tOptional (UFW)\nOptional: Reference RPC\nVariable\tDescription\tDefault\nreference_rpc_url\tReference RPC endpoint for slot sync comparison (e.g., ERPC)\t—\n\nERPC API keys are free at https://erpc.global — enables full slot sync monitoring during deployment and updates.\n\nPre-flight: Fresh Server Setup\nansible-playbook -i inventory.yml cmn/add_solv.yml \\\n  -e '{\"ansible_user\":\"ubuntu\"}' --become\n\nDeployment Command\n\nAll paths relative to skill's ansible/ directory:\n\ncd /path/to/slv-grpc-geyser/ansible/\nansible-playbook -i inventory.yml mainnet-rpc/init.yml \\\n  -e '{\"rpc_type\":\"Geyser gRPC\",\"solana_version\":\"<version>\",\"richat_version\":\"<version>\"}'"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/POPPIN-FUMI/slv-grpc-geyser",
    "publisherUrl": "https://clawhub.ai/POPPIN-FUMI/slv-grpc-geyser",
    "owner": "POPPIN-FUMI",
    "version": "0.10.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/slv-grpc-geyser",
    "downloadUrl": "https://openagent3.xyz/downloads/slv-grpc-geyser",
    "agentUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent",
    "manifestUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/slv-grpc-geyser/agent.md"
  }
}