# Gas Station

Executive summary
**Gas Station funds transaction fees for sponsored accounts on supported Solana, XRPL, and EVM-compatible ledgers.**

- Sponsor accounts provide native tokens for accounts that need gas.
- Configure sponsorship for specific accounts or for a domain.
- Set `includeSubDomains` to include subdomains in domain sponsorship.
- Gas Station uses just-in-time funding instead of pre-funding every sponsored account.
- Gas Station submits automated funding transactions as system-signed intents. You must activate system-signed intents and create a Gas Station policy before sponsorship works.


Why this matters
Gas Station reduces operational friction for users and integrations that hold non-native tokens but do not hold the native token required for transaction fees. Operators can fund one or more sponsor accounts and define which accounts or domains receive fee funding.

For architects, Gas Station affects account design, system-signed policy governance, sponsor funding, and monitoring. Scope sponsorship deliberately so accounts get automated funding where they need it without granting broader transaction authority than the service requires.

Current scope
Gas Station currently supports fee funding for non-native asset transactions on selected Solana, XRPL, and EVM-compatible ledgers. A sponsor account can only fund accounts on the same blockchain network. Sponsorship does not remove the need to fund and monitor sponsor accounts.

## How Gas Station works

When a sponsored account needs native gas for a supported transaction, Gas Station:

1. Detects that the account needs fee funding.
2. Checks whether Gas Station sponsors the account directly or through its domain.
3. Estimates the required native-token amount.
4. Submits a funding transaction from the sponsor account to the sponsored account.
5. Records the sponsorship activity for audit and monitoring.


```mermaid
flowchart TD
    Tx["Transaction needs gas"] --> HasFunds{"Account already has enough native token?"}
    HasFunds -->|Yes| Done["No sponsorship needed"]
    HasFunds -->|No| DomainSponsor{"Domain-level sponsor?"}
    DomainSponsor -->|Yes| Fund["Sponsor funds account"]
    DomainSponsor -->|No| ParentSponsor{"Inherited sponsor from parent domain?"}
    ParentSponsor -->|Yes| Fund
    ParentSponsor -->|No| AccountSponsor{"Account-level sponsor?"}
    AccountSponsor -->|Yes| Fund
    AccountSponsor -->|No| Waiting["Transaction waits for manual funding"]
    Fund --> Continue["Original transaction can continue"]
```

## Sponsorship model

| Sponsorship type | Description |
|  --- | --- |
| `account` | A sponsor account funds specific account IDs. |
| `domain` | A sponsor account funds accounts in a domain. |
| `none` | Disables sponsorship for the sponsor configuration. |


The platform resolves a sponsor in a fixed order: first a domain-level sponsor for the account's domain, then a sponsor inherited from a parent domain (when domain-level sponsorship uses `includeSubDomains`), then account-level sponsorship.

## System-signed intents and policies

Gas Station submits funding transactions as system-signed intents, in the same way as [Omnibus automation](/products/custody/v1.38/accounts-and-assets/omnibus/setup-and-governance#system-signed-automation). The Gas Station service authenticates as a service caller registered in your identity provider (Keycloak), and does not hold a user signing key.

Migration from bot users
Earlier releases used a dedicated bot user to sign Gas Station funding transactions. From this release, funding uses system-signed intents instead. Existing deployments must set up the service-caller identity in Keycloak and create a Gas Station system-signed policy, or automated funding stops working.

Funding works only after system-signed intents are activated for the deployment, the Gas Station service caller is registered in your identity provider, and a policy with `intentOrigin: "SystemSigned"` admits the service's funding intents (`v0_CreateTransactionOrder` only). For the activation sequence, see [System-signed intent configuration](/products/custody/v1.38/deployment/reference/system-signed-intents); for the policy example, see [System-signed Gas Station proposal](/products/custody/v1.38/governance/policies/examples#system-signed-gas-station-proposal); for deploying the service, see [Gas Station reference](/products/custody/v1.38/deployment/reference/gas-station).

Policy scope
If Gas Station's funding intents match a policy that requires manual approvals, those approvals may delay or block automatic sponsorship. Keep the Gas Station policy narrowly scoped so funding executes without manual intervention.

## Omnibus usage

[Omnibus](/products/custody/v1.38/accounts-and-assets/omnibus/overview) can use Gas Station for non-native token sweeps from deposit wallets to the omnibus wallet on supported Solana, XRPL, and EVM networks.

When Gas Station funds an Omnibus deposit wallet, Omnibus must ignore the Gas Station account as a deposit source. This prevents Omnibus from processing native-token funding transactions as customer deposits.

## Monitoring

Gas Station sponsorship depends on sponsor-account balances and healthy background processing. Monitor:

- Sponsor account balances and configured `alertLimit` thresholds.
- Funding failures and retry queues.
- Gas Station system-signed intent activity.
- Gas Station health and readiness endpoints.
- Telemetry exported through your configured OpenTelemetry pipeline.


## Related topics

| Topic | Documentation |
|  --- | --- |
| UI procedures | [Manage a gas station in the UI](/products/custody/v1.38/accounts-and-assets/gas-station/manage-gas-station-ui) |
| API procedures | [Manage a gas station with the API](/products/custody/v1.38/accounts-and-assets/gas-station/manage-gas-station-api) |
| Deployment reference | [Gas Station reference](/products/custody/v1.38/deployment/reference/gas-station) |
| System-signed intents | [System-signed intent configuration](/products/custody/v1.38/deployment/reference/system-signed-intents) |
| Omnibus | [Omnibus](/products/custody/v1.38/accounts-and-assets/omnibus/overview) |