{"templateId":"markdown","versions":[{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/deployment/reference/gas-station","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/reference/gas-station","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/reference/gas-station","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/reference/gas-station","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/reference/gas-station","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/reference/gas-station","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Gas Station reference","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"gas-station-reference","__idx":0},"children":["Gas Station reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this page to understand the main deployment settings and runtime interfaces for the Gas Station Service. The example shows one possible configuration shape; your release package, database, secrets, and telemetry pipeline can differ."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page applies to on-premise deployments only. Ripple manages the Gas Station Service for SaaS."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-config-controls","__idx":1},"children":["What this config controls"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Gas Station is a background service that funds transaction fees for sponsored accounts on supported ledgers. It connects to the ","Ripple Custody"," API gateway, authenticates as a service caller registered in Keycloak, submits automated funding intents as system-signed intents, stores processing state in PostgreSQL, and exports telemetry when configured."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Migration from bot users"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Earlier releases used a bot-user private key for automated funding intents. Gas Station now uses system-signed intents instead. Existing deployments must migrate before they upgrade, or automated funding stops. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#migrate-from-a-bot-user"},"children":["Migrate from a bot user"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"migrate-from-a-bot-user","__idx":2},"children":["Migrate from a bot user"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you funded Gas Station with a bot-user private key in an earlier release, migrate to system-signed intents in this order so that funding does not stop:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Activate system-signed intents for the deployment. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/system-signed-intents"},"children":["System-signed intent configuration"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Register the Gas Station service caller in Keycloak and issue it a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custody_roles"]}," claim. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/identity-and-access/authentication/authenticate-api-requests#obtain-a-token-for-a-service-caller"},"children":["Obtain a token for a service caller"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create a policy with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["intentOrigin: \"SystemSigned\""]}," that allows the service caller to submit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateTransactionOrder"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/gas-station/overview#system-signed-intents-and-policies"},"children":["System-signed intents and policies"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Redeploy Gas Station with the service-caller credentials. Remove the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PRIVATE_KEY"]}," environment variable and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.credentials.privateKeyKey"]}," value."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm that new funding intents execute, then decommission the bot user."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configuration-fields","__idx":3},"children":["Configuration fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the service through environment variables or deployment values, depending on how your release packages Gas Station."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HMZ_FEATURE_GAS_STATION"]}," deployment flag controls whether the console displays the Gas station pages, including ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/gas-station/manage-gas-station-ui#create-a-gas-station"},"children":["gas station creation"]},"."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GATEWAY_SERVER_URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple Custody"," API gateway URL."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Service-caller credentials"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client credentials for the Gas Station service caller registered in Keycloak. The exact parameters depend on your release package; contact your Customer Partner Engineer (CPE) for the specifics."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLLING_INTERVAL_MS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Interval for checking pending transactions, in milliseconds."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5000"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MAX_RETRY_ATTEMPTS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum immediate retry attempts for failed funding."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RETRY_INTERVAL_MINUTES"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Interval between queued retry attempts."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FEE_SAFETY_MARGIN_PERCENT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Safety margin added to estimated fees."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["10"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POSTGRES_URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PostgreSQL connection string."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LOG_LEVEL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Logging verbosity. Possible values: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debug"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["info"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warn"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},"."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["info"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OTEL_EXPORTER_OTLP_ENDPOINT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenTelemetry collector endpoint."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deployment-values","__idx":4},"children":["Deployment values"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following fields show a possible values-file shape for the Gas Station Service:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Turns on the Gas Station Service when the release package supports it."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.gatewayUrl"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple Custody"," API gateway URL."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.pollingIntervalMs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Polling interval in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.maxRetryAttempts"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum immediate retry attempts."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.retryIntervalMinutes"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Queue retry interval in minutes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.feeSafetyMarginPercent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fee safety margin percentage."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.database.*"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Database host, port, database name, username, and secret reference."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.credentials.*"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Secret reference for the Gas Station service-caller (Keycloak client) credentials."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gasStation.telemetry.*"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Telemetry enablement and OTLP endpoint."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your release exposes Gas Station through component selection, include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gas-station"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.included_components"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"database-reference","__idx":5},"children":["Database reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Gas Station uses PostgreSQL for event deduplication, retry tracking, sponsorship configuration, alert thresholds, and audit data."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Table"},"children":["Table"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processed_event"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event deduplication and distributed locking."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed_funding_job"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Failed funding attempts for queue-based retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dead_letter_queue"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Permanently failed jobs requiring investigation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sponsor"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sponsorship configuration."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alert"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Low-balance alert thresholds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Audit trail for configuration changes."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you are using the shared ","Ripple Custody"," PostgreSQL instance, the Gas Station Service creates its own schema (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gas_station"]},") within the shared database. The database user must have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATE SCHEMA"]}," privileges. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/postgresql"},"children":["PostgreSQL configuration"]}," for details on schema isolation across components."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"health-endpoints","__idx":6},"children":["Health endpoints"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/health"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Liveness probe."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v1/ready"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Readiness probe."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"metrics-and-traces","__idx":7},"children":["Metrics and traces"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Gas Station exports metrics and traces through OpenTelemetry when you configure telemetry."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Metric"},"children":["Metric"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["failed_jobs_queue_size"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gauge"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of jobs in the failed funding queue."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processed_events_count"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gauge"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of processed event rows."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sponsor_balance_<ticker>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Gauge"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Current balance of each sponsor account."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["funding_attempts_total{status, chain}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Counter"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Funding attempts by status and chain."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["events_processed_total{outcome}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Counter"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Events processed by outcome."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retry_attempts_total{attempt}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Counter"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry attempts before success or failure."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["funding_duration_seconds"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Histogram"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Time from event detection to funding completion."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["job_age_at_success_hours"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Histogram"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Time jobs spend in the queue before success."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api_latency_seconds{endpoint}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Histogram"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API latency by endpoint."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"constraints-and-relationships","__idx":8},"children":["Constraints and relationships"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store the service-caller credentials in a Kubernetes secret or external secret-management system."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Point ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POSTGRES_URL"]}," to a PostgreSQL database or schema that the service can access."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GATEWAY_SERVER_URL"]}," resolves from the Gas Station runtime environment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure telemetry fields only when your deployment has an OpenTelemetry collector."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Scope the Gas Station system-signed policy narrowly enough for funding operations."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":9},"children":["Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example shows one possible Gas Station configuration shape:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"harmonize:\n  included_components:\n    - gas-station\n\ngasStation:\n  enabled: true\n  gatewayUrl: \"https://gateway.example.com\"\n  pollingIntervalMs: 5000\n  maxRetryAttempts: 3\n  retryIntervalMinutes: 5\n  feeSafetyMarginPercent: 10\n\n  database:\n    host: \"postgres.example.com\"\n    port: 5432\n    name: \"gas_station\"\n    username: \"gas_station_user\"\n    existingSecret: \"gas-station-db-credentials\"\n\n  credentials:\n    existingSecret: \"gas-station-credentials\"\n\n  telemetry:\n    enabled: true\n    otlpEndpoint: \"http://otel-collector:4317\"\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":10},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/gas-station/overview"},"children":["Gas Station"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/gas-station/manage-gas-station-api"},"children":["Manage a gas station with the API"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/system-signed-intents"},"children":["System-signed intent configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/telemetry-configuration"},"children":["Telemetry configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/reference/postgresql"},"children":["PostgreSQL configuration"]}]}]}]},"headings":[{"value":"Gas Station reference","id":"gas-station-reference","depth":1},{"value":"What this config controls","id":"what-this-config-controls","depth":2},{"value":"Migrate from a bot user","id":"migrate-from-a-bot-user","depth":2},{"value":"Configuration fields","id":"configuration-fields","depth":2},{"value":"Deployment values","id":"deployment-values","depth":2},{"value":"Database reference","id":"database-reference","depth":2},{"value":"Health endpoints","id":"health-endpoints","depth":2},{"value":"Metrics and traces","id":"metrics-and-traces","depth":2},{"value":"Constraints and relationships","id":"constraints-and-relationships","depth":2},{"value":"Example","id":"example","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Gas Station reference"}},"lastModified":"2026-08-04T20:25:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/deployment/reference/gas-station","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}