
Product
Introducing Socket Firewall Enterprise: Flexible, Configurable Protection for Modern Package Ecosystems
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.
@openzeppelin/contracts-ui-builder-adapter-stellar
Advanced tools
Stellar Adapter for Contracts UI Builder
@openzeppelin/contracts-ui-builder-adapter-stellar)This package provides the ContractAdapter implementation for the Stellar (Soroban) ecosystem for the UI Builder.
It is responsible for:
ContractAdapter interface from @openzeppelin/contracts-ui-builder-types.StellarNetworkConfig objects in src/networks/ (Horizon URL, Soroban RPC URL, network passphrase, explorer URL, icon, etc.).ContractSchema.ScVal types for transaction execution and formatting view results.src/wallet/ module.The Stellar adapter uses an execution strategy pattern similar to the EVM adapter to handle transaction submissions.
StellarRelayerOptions React component to configure strategy‑specific options in the Builder UI.The adapter selects the strategy at runtime based on the ExecutionConfig provided by the application.
The Builder application’s “Customize” step passes an ExecutionConfig to the adapter’s signAndBroadcast method. The adapter uses a factory to instantiate the appropriate strategy and reports live status updates via the provided onStatusChange callback.
All wallet integration logic, UI components, facade hooks, and the UI context provider for Stellar are located in src/wallet/.
The StellarAdapter implements the optional UI methods from ContractAdapter:
getEcosystemReactUiContextProvider() returns StellarWalletUiRoot, a stable provider root for Stellar wallet state.getEcosystemReactHooks() returns stellarFacadeHooks for account and connection status.getEcosystemWalletComponents() returns available wallet UI components (e.g., ConnectButton, AccountDisplay) for the active UI kit.For full documentation on the wallet module, see src/wallet/README.md.
This adapter follows the standard module structure outlined in the main project Adapter Architecture Guide.
adapter-stellar/
├── src/
│ ├── configuration/ # Adapter-specific configuration (RPC, explorer, execution)
│ ├── contract/ # Contract loading & metadata
│ ├── mapping/ # Soroban ↔ form field mapping & generators
│ ├── networks/ # Stellar network configurations
│ ├── query/ # View function execution
│ ├── transaction/ # Transaction execution system (EOA, Relayer)
│ │ ├── components/ # React components for configuration
│ │ ├── formatter.ts # Build Soroban tx data from form inputs
│ │ ├── execution-strategy.ts # Strategy interface
│ │ ├── eoa.ts / relayer.ts # Strategy implementations
│ ├── transform/ # Input parsing and output formatting
│ ├── types/ # Adapter-specific types
│ ├── utils/ # Utilities (artifact handling, formatting, etc.)
│ ├── validation/ # Validation utilities (addresses, configs)
│ ├── wallet/ # Wallet integration (see wallet/README.md)
│ │ ├── components/ # Wallet UI components
│ │ ├── context/ # Wallet context
│ │ ├── hooks/ # Facade & low-level hooks
│ │ ├── implementation/ # Stellar Wallets Kit implementation
│ │ ├── services/ # Config resolution for wallet UI
│ │ ├── stellar-wallets-kit/ # Kit-specific helpers
│ │ ├── README.md # Detailed wallet documentation
│ ├── adapter.ts # Main StellarAdapter class implementation
│ └── index.ts # Public package exports
├── package.json
├── tsconfig.json
├── tsup.config.ts
├── vitest.config.ts
└── README.md
Instantiate the adapter with a specific StellarNetworkConfig:
import { StellarAdapter, stellarTestnet } from '@openzeppelin/contracts-ui-builder-adapter-stellar';
const networkConfig = stellarTestnet; // or stellarPublic
const stellarAdapter = new StellarAdapter(networkConfig);
// Use stellarAdapter for operations on the configured Stellar network
Network configurations for Stellar networks are exported from src/networks/index.ts (stellarPublic, stellarTestnet, arrays stellarMainnetNetworks, stellarTestnetNetworks, and stellarNetworks).
Each StellarNetworkConfig specifies a default sorobanRpcUrl.
This URL can be overridden at runtime by the consuming application through the central AppConfigService. Configuration is loaded from environment variables (for the Builder app) or a public/app.config.json file (for exported apps).
To override a RPC URL, define an entry in rpcEndpoints keyed by the network’s string ID (e.g., "stellar-testnet").
In .env for the Builder app:
VITE_APP_CFG_RPC_ENDPOINT_STELLAR_TESTNET="https://your-custom-soroban-rpc.testnet.example"
In public/app.config.json for an exported app:
{
"rpcEndpoints": {
"stellar-testnet": "https://your-custom-soroban-rpc.testnet.example",
"stellar-public": "https://your-custom-soroban-rpc.public.example"
}
}
The adapter resolves Soroban RPC in this order:
UserRpcConfigService (advanced user input)AppConfigService.getRpcEndpointOverride(networkId)sorobanRpcUrl from the active StellarNetworkConfigStellar explorers are used for display only. The adapter constructs URLs using explorerUrl from the network config:
getExplorerUrl(address) → .../account/{address} or .../contract/{id} (Soroban contracts)getExplorerTxUrl(txHash) → .../tx/{hash}No explorer API keys are required for adapter functionality.
Stellar networks are exported from src/networks/. Each StellarNetworkConfig includes:
id: Unique network identifier (e.g., "stellar-public", "stellar-testnet")name: Display nameecosystem: Always "stellar"network: Always "stellar"type: "mainnet" or "testnet"isTestnet: booleanhorizonUrl: Horizon endpoint for the networksorobanRpcUrl: Soroban JSON-RPC endpointnetworkPassphrase: The network passphrase used by Wallets Kit / SDKexplorerUrl: Base URL for the explorer (display only)icon: Icon identifierSee src/networks/README.md for details on adding networks and overriding RPC.
This adapter generally follows the standard module structure and developer experience provided by the EVM adapter, while keeping the core app chain‑agnostic.
FAQs
Stellar Adapter for Contracts UI Builder
The npm package @openzeppelin/contracts-ui-builder-adapter-stellar receives a total of 89 weekly downloads. As such, @openzeppelin/contracts-ui-builder-adapter-stellar popularity was classified as not popular.
We found that @openzeppelin/contracts-ui-builder-adapter-stellar demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 9 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.