跳转至

环境变量

所有策略通过网关侧车运行(由 almanak strat run 自动启动)。网关持有密钥,提供 RPC 访问,并执行交易。

在您的策略目录中创建 .env 文件,填入以下变量。


必需

在运行任何策略之前必须设置这些变量。

变量 描述 示例
ALMANAK_PRIVATE_KEY 用于签署交易和派生钱包地址的钱包私钥 0x4c0883a6...

RPC 访问(推荐;未设置时使用免费公共 RPC)

变量 优先级 描述 示例
ALMANAK_{CHAIN}_RPC_URL 1(最高) 带 ALMANAK 前缀的按链 RPC URL https://arb-mainnet.infura.io/v3/KEY
{CHAIN}_RPC_URL 2 按链 RPC URL(如 ARBITRUM_RPC_URL https://arb-mainnet.infura.io/v3/KEY
ALMANAK_RPC_URL 3 所有链的通用 RPC URL https://your-rpc.com/v1/KEY
RPC_URL 4 基本通用 RPC URL https://your-rpc.com/v1/KEY
ALCHEMY_API_KEY 5(备用) Alchemy API 密钥 -- 按链自动构建 URL abc123def456
TENDERLY_API_KEY_{CHAIN} 6(备用) 按链的 Tenderly API 密钥(如 TENDERLY_API_KEY_ARBITRUM abc123...

任何提供商都可以:Infura、QuickNode、自托管、Alchemy 等。ALCHEMY_API_KEY 是可选的备用方案,会自动为所有支持的链构建 URL。如果未设置任何变量,网关将回退到免费公共 RPC(有速率限制,尽力而为)。

Warning

切勿提交私钥。开发时请使用专用测试钱包。

注意: 网关还接受 ALMANAK_GATEWAY_PRIVATE_KEY(带有自己的前缀)。如果设置了,它将优先使用。否则,网关将回退到 ALMANAK_PRIVATE_KEY -- 因此您只需要一个变量。


可选 API 密钥

根据您的策略使用的协议和功能设置这些变量。

变量 何时需要 获取密钥
ENSO_API_KEY 通过 Enso Finance 聚合器进行交换路由 enso.finance
COINGECKO_API_KEY 改善价格数据的速率限制(无密钥也可使用) coingecko.com/en/api
ALMANAK_API_KEY Almanak 平台身份验证 app.almanak.co
THEGRAPH_API_KEY 使用子图数据进行回测(DEX 交易量、借贷 APY) thegraph.com/studio

协议特定

仅在您的策略使用这些特定协议时需要。

Kraken

变量 描述
KRAKEN_API_KEY Kraken API 密钥(获取凭证
KRAKEN_API_SECRET Kraken API 密钥秘密

Polymarket

变量 描述
POLYMARKET_WALLET_ADDRESS Polymarket 钱包地址
POLYMARKET_PRIVATE_KEY Polymarket 签名密钥
POLYMARKET_API_KEY CLOB API 密钥
POLYMARKET_SECRET HMAC 秘密
POLYMARKET_PASSPHRASE API 密码短语

Pendle

变量 描述
ALMANAK_GATEWAY_PENDLE_API_KEY Pendle 协议 API 密钥

Solana

变量 描述
SOLANA_PRIVATE_KEY Ed25519 密钥对,base58 格式(或 64 字符十六进制种子)。Solana 策略必需。
SOLANA_RPC_URL Solana RPC 端点。默认为 https://api.mainnet-beta.solana.com(有速率限制)。生产环境请使用 Helius、QuickNode 或 Triton。
JUPITER_API_KEY Jupiter 聚合器 API 密钥。未设置时使用免费层级。

网关身份验证与安全

托管(Almanak Infra)部署的关键依赖项。每个变量在网关启动时读取一次,更改需要重启。

变量 描述
ALMANAK_GATEWAY_AUTH_TOKEN gRPC 身份验证的共享密钥令牌。设置后,客户端必须在元数据中提供此令牌才能访问服务。托管部署上必须设置。
ALMANAK_GATEWAY_ALLOW_INSECURE 设置为 true 时,允许网关在未设置 ALMANAK_GATEWAY_AUTH_TOKEN 的情况下启动。默认 false(网关拒绝启动)。仅限本地开发 — 切勿在托管部署上设置。
ALMANAK_GATEWAY_OPERATOR_TOKEN DashboardService 上变更类 RPC(PreviewReconcileApplyReconcileRefreshRegistryFromChain)所需的二次因子令牌(VIB-4493 第一阶段)。调用方必须在 x-operator-token 元数据头中发送相同的值,同时还要带上常规的身份验证令牌。未设置(默认)时,这些处理程序回退到仅 auth-token 验证 — 对单用户 / 本地部署是安全的。

未设置这些变量的托管部署不安全

在托管网关上省略 ALMANAK_GATEWAY_AUTH_TOKEN(或启用 ALMANAK_GATEWAY_ALLOW_INSECURE=true)会将每个 gRPC 服务暴露给未经身份验证的调用方 — 包括对交易进行签名和提交的 ExecutionService。请将两者都视为生产环境的密钥。


手动价格覆盖

针对真实预言机源无法定价的代币(如新兴链上的长尾代币)的最后兜底方案。

变量 描述
ALMANAK_GATEWAY_ENABLE_MANUAL_PRICE_OVERRIDES 启用 ManualPriceOverrideSource 回退源。默认 false。默认关闭,因为设置错误的环境变量可能将错误价格输入到滑点 / 拆仓决策中。
ALMANAK_PRICE_OVERRIDE_<TOKEN> 每个代币的 USD 覆盖价格。仅在所有真实预言机源都未能为该代币定价时才会查阅。示例:ALMANAK_PRICE_OVERRIDE_W0G=0.012

两者都需要设置:启用标志打开数据源;每个代币的变量提供价格。


Tenderly 模拟

当模拟器设置为 "tenderly"(或自动选择)时,由 SimulationService.SimulateBundle 使用。三个变量必须同时设置 — 任何一个为空都会禁用 Tenderly 并在可用时回退到 Alchemy 模拟。

变量 描述
ALMANAK_GATEWAY_TENDERLY_ACCOUNT_SLUG Tenderly 账户标识(仪表板 URL 中的 <account> 段)。
ALMANAK_GATEWAY_TENDERLY_PROJECT_SLUG 账户中的 Tenderly 项目标识。
ALMANAK_GATEWAY_TENDERLY_ACCESS_KEY 具有模拟权限的 Tenderly 访问密钥(账户设置 → 访问密钥)。

投资组合数据源(多提供商)

配置网关的投资组合估值源。由 IntegrationService.GetWalletPortfolio / GetWalletPositions 用于跨链聚合余额和 DeFi 持仓。

变量 描述
ALMANAK_GATEWAY_PORTFOLIO_API_KEY 单提供商 API 密钥(旧版单提供商路径)。
ALMANAK_GATEWAY_PORTFOLIO_API_PROVIDER 单提供商名称。默认 zerion
ALMANAK_GATEWAY_PORTFOLIO_PROVIDERS 多提供商覆盖。按优先顺序以逗号分隔的提供商名称(如 zerion,moralis)。设置后,优先于单提供商密钥。每个提供商从 {NAME}_API_KEY 读取自己的 API 密钥(如 ZERION_API_KEYMORALIS_API_KEY)。

Safe 钱包

用于通过 Gnosis Safe 多签执行的策略。

变量 描述
ALMANAK_GATEWAY_SAFE_ADDRESS Safe 钱包地址
ALMANAK_GATEWAY_SAFE_MODE direct(Anvil/阈值为1)或 zodiac(生产环境)
ALMANAK_GATEWAY_ZODIAC_ROLES_ADDRESS Zodiac Roles 模块地址(zodiac 模式)
ALMANAK_GATEWAY_SIGNER_SERVICE_URL 远程签名服务 URL(zodiac 模式)
ALMANAK_GATEWAY_SIGNER_SERVICE_JWT 远程签名 JWT(zodiac 模式)

回测

归档 RPC URL

历史链上数据(Chainlink 价格、TWAP 计算)所必需。标准 RPC 节点不支持历史状态查询。请使用支持归档的提供商,如 Alchemy(付费)、QuickNode 或 Infura。

模式:ARCHIVE_RPC_URL_{CHAIN}(如 ARCHIVE_RPC_URL_ARBITRUMARCHIVE_RPC_URL_ETHEREUMARCHIVE_RPC_URL_BASEARCHIVE_RPC_URL_OPTIMISMARCHIVE_RPC_URL_POLYGONARCHIVE_RPC_URL_AVALANCHE

区块浏览器 API 密钥

可选,用于历史 Gas 价格数据。模式:{EXPLORER}_API_KEY

变量 浏览器
ETHERSCAN_API_KEY etherscan.io
ARBISCAN_API_KEY arbiscan.io
BASESCAN_API_KEY basescan.org
OPTIMISTIC_ETHERSCAN_API_KEY optimistic.etherscan.io
POLYGONSCAN_API_KEY polygonscan.com
SNOWTRACE_API_KEY snowtrace.io
BSCSCAN_API_KEY bscscan.com

快速开始 .env

# 必需
ALMANAK_PRIVATE_KEY=0xYOUR_PRIVATE_KEY

# RPC 访问(选择一个)
RPC_URL=https://your-rpc-provider.com/v1/your-key
# ALCHEMY_API_KEY=your_alchemy_key  # 替代方案:按链自动构建 URL

# 推荐
ENSO_API_KEY=your_enso_key
COINGECKO_API_KEY=your_coingecko_key

所有其他网关和框架设置都有合理的默认值,不需要设置。请参阅 .env.example 了解高级选项的完整列表。