The TerraM ETH bot was built around a simple premise: sell short-dated ETH puts only at strikes we are prepared to accept as an ETH entry level. An in-the-money expiry was never meant to be treated as a strategy failure. If we are willing to sell an ETH put at a particular strike, we should also be prepared to own ETH around that level and continue managing the position.
The 1DTE put engine was already working
The original 1DTE put-selling loop has been working in production. The bot scans Bybit ETH options for qualifying short-dated puts, applies its delta, premium, spread, and ranking rules, sells an eligible put, and monitors the position through expiry. When the put expires worthless, the bot records the premium and automatically rolls into the next qualifying 1DTE contract.

At the latest audit, production had recorded 94 non-dry-run ETH put trades: 93 worthless expiries and one current filled put. Earlier, the bot had reached 92 out of 92 worthless expiries. That result was encouraging, but it also prompted a deeper review of what would happen when the first genuine ITM expiry arrived.
The existing ETH options-bot assignment work and the Ethereum options research provide the wider context. The recent work makes the assignment path economically complete.
Assignment was always part of the plan
Selling a put means accepting an obligation. Premium is compensation for that obligation, not proof that the position cannot become difficult. The intended wheel sequence is familiar: sell a put, accept ETH exposure if the put finishes ITM, sell covered calls against the acquired ETH, and return to puts when the lot is closed. The key question was how to make that sequence real on a cash-settled options venue.
Why cash-settled crypto options required a different solution
Bybit ETH options are cash-settled. An ITM put does not physically deliver ETH into the account. That means a database assignment record is not the same thing as holding ETH, and it cannot safely support a covered call by itself.
Before this work, the bot could represent an assignment internally. The revised production logic instead creates the economic equivalent of assignment: an ITM short put leads to a matching ETHUSDT spot purchase, the exchange fill is reconciled, usable ETH backing is verified, and only then can the lot become eligible for covered calls.
Buying real ETH after an ITM put
For a 0.1 ETH put, the bot targets 0.1 ETH on ETHUSDT through a market BUY. The quantity is expressed as ETH, the base asset, while USDT is the payment asset. It does not require ETH in order to buy ETH.
If sufficient USDT is available, the spot purchase uses that balance. If cash USDT is insufficient but Unified Spot Margin borrowing is permitted, Bybit can fund the order through the existing margin-enabled spot flow. The bot does not create a separate manual borrowing workflow. If Bybit cannot fund or fill the order, the lot does not become backed locally and the wheel does not advance.
Each acquisition has a durable spot-order record and a deterministic client order ID tied to its source put. Before a retry, the bot reconciles the prior exchange request. This protects against duplicate purchases after a timeout, restart, or ambiguous write. Once an order is found, the bot records the actual filled ETH quantity, average fill price, quote amount, fees, and exchange evidence.
The exchange fill is authoritative for the new lot’s attributed ETH quantity. A separate wallet check confirms that sufficient ETH is usable in the Unified Account, but unrelated ETH already held in the account cannot increase the backed quantity of the new wheel lot.
Turning real ETH into a covered-call wheel
Only confirmed spot ETH can become covered-call inventory. The bot will not sell a call until the spot BUY has been confirmed, the ETH quantity is backed by the reconciled fill, and the wallet check shows sufficient usable ETH. A call can never exceed the lot’s confirmed backed ETH.
Call selection remains conservative. The strike cannot be below the original put strike, the search can extend to roughly 90 days, and the preference is the nearest suitable expiry with the closest acceptable strike. This is a real wheel-strategy implementation rather than a database-only assignment model.
If a covered call expires worthless, the bot keeps the ETH and looks for another suitable call. If the call expires ITM, Bybit cash-settles the option, so the bot must independently sell the backed ETH on ETHUSDT spot. It confirms that fill before reducing or closing the assignment lot. When the lot is fully closed, the system can return to the existing put workflow.
Better trade history, charts, and CSV export
The same development period improved reporting and analysis. The Trade Journal retains entry delta, keeps its compact default view, supports filtering and pagination, and can export structured CSV data. Performance charts also handle date ranges more reliably.
CSV export matters because it makes the history usable beyond a dashboard. It gives us data for studying delta versus premium, challenged trades, assignment frequency, recovery duration, fees, borrowing cost, fill quality, and future machine-learning analysis. The Trading Journal remains the public reporting surface; export makes the underlying record easier to analyze.
Still waiting for the first real assignment
The 1DTE put-selling and worthless-rollover side is production-proven. The spot-backed wheel path is deployed and tested, but there has not yet been a genuine production ITM put event. As a result, no live spot-wheel BUY, bot-created backed assignment lot, completed covered-call cycle, or live spot disposal cycle has occurred yet.
Sometimes we are almost eager for the first assignment because it will finally test the new path end to end; other times we are perfectly happy to keep collecting premium while the puts expire worthless. The purpose of the work is not to force assignment. It is to ensure that the bot has a defined, economically real response when it happens.
Approaching 100 trades
TerraM is approaching the 100-trade milestone. We intend to review the strategy at that threshold before considering any increase in position size. One hundred trades is not proof of safety. It is a more useful point for evaluation than a short favorable streak.
That review should cover premium, assignment frequency, fill quality, collateral usage, fees, borrowing costs, drawdowns, liquidity, and operational exceptions. Scaling should follow evidence, not excitement.
AI and machine learning later
We do plan to introduce machine learning and AI analysis later. First, the system needs clean execution data and reliable operational evidence: settlement handling, real backing, duplicate-order protection, durable reconciliation, and clean history.
Later analysis may help evaluate whether the current delta target is appropriate, how delta relates to assignment frequency and premium per day, which call DTEs improve recovery, how fees and borrowing costs affect results, and how capital is being used. AI and ML should be advisory first, informing review and risk decisions before influencing execution rules.
Public access: bot.terramatris.eu
The TerraM ETH bot is available publicly at bot.terramatris.eu. To use it, you need a Bybit account, API credentials connected to the bot, and 10 TerraM tokens per month for access.
The Bybit connection guide explains the onboarding flow. Trading funds remain in the user’s own Bybit account; TerraMatris does not take custody of those funds. More information on access is available on the TerraM token page.
Risks and experimental status
The bot is experimental trading software. It is not investment advice and does not guarantee a return. A 20%+ annualized gross-premium indication, where shown in historical reporting, is not a promise of future results. Premium is not the same as profit, and ETH can decline sharply after assignment.
Margin borrowing adds risk and interest cost. Exchange outages, API failures, liquidity gaps, wide spreads, settlement delays, market moves, and incomplete fills can affect automation. A system designed to fail safely can still pause when evidence or funding is incomplete.
Where TerraM goes next
The next important event is the first genuine ITM put expiry. When that happens, the bot should move into a real ETH spot acquisition, verify the backing, and begin the covered-call side of the wheel. The first complete live cycle will provide the evidence needed to evaluate the implementation under real exchange conditions.
Until then, the system continues to sell qualifying 1DTE ETH puts, record outcomes, preserve evidence, and wait for the market to present the next decision.