Swaps settle to the plan owner
The swap recipient is set to plan.owner. Tokenized equities move from Uniswap to your address. The protocol does not hold them at any point.
recipient: p.owner
// WaymarkDCAVault.sol:341
Fund a plan with stablecoins and define a rule. A keeper executes it when the condition is met, the swap routes through Uniswap, and the tokenized equities settle to your address in the same transaction.
Autopilot
live · 24/7
Three properties in the contract enforce it. Each is a single line you can read. A plan is a spending rule. It is not a fund, a managed account, or a claim on the assets it buys.
The swap recipient is set to plan.owner. Tokenized equities move from Uniswap to your address. The protocol does not hold them at any point.
recipient: p.owner
// WaymarkDCAVault.sol:341
Every withdrawal path first requires that you are the plan owner. You may name where it lands — useful if your own address is ever frozen — but nobody else can move it. A compromised keeper cannot move funds at all.
require(p.owner
== msg.sender)
// WaymarkDCAVault.sol:440
A plan spends amountPerBuy, no sooner than its interval or cooldown permits, and only from the deposited balance. Each buy must also clear a price floor derived from the pool TWAP, so a keeper cannot fill you at a manipulated price.
require(block.timestamp
>= p.nextExec)
// WaymarkDCAVault.sol:306
The contract shape is the same in each case. The trigger changes.
A fixed amount on a fixed interval, minimum one hour.
Executes when price sits a set percentage below a time-weighted average, with a cooldown between executions. The average is read onchain. The trigger is a single threshold and does not scale size to drawdown depth.
One transaction buys a defined set at published weights, each constituent settling to your address. Nothing is pooled. There is no NAV and no shared position. Baskets are curated by the contract owner.
The three strategy vaults are deployed and executing on mainnet. They have not been audited.
$WAY carries a 1% buy and 1% sell transfer tax on trades. That revenue funds development, which is why the strategy vaults take no fee at all. $WAY is not a claim on revenue, profit, or the assets held in any plan. There are no emissions, no staking, and no governance.
protocol fee on every executed buy. Read feeBps() on any vault to check.
buy and sell tax on $WAY trades. This is what pays for the product.
Plans are funded and settled in Global Dollar. You still pay the Uniswap pool fee and gas.
Every execution is fee-free for everyone. There is no tier to buy into.
The transfer tax on $WAY trades is the revenue line. Volume-dependent, not guaranteed.
Minted once. owner() returns the zero address. Both readable in the panel above.
| File | What it does | Lines | State |
|---|---|---|---|
| WaymarkDCAVault.sol | Recurring buy plans on a fixed interval | 650 | Deployed |
| WaymarkDipVault.sol | TWAP-conditional buys with a cooldown | 654 | Deployed |
| WaymarkBaskets.sol | Atomic multi-asset buys at target weights | 517 | Deployed |
| Contract | Address | On-chain |
|---|
feeBps() on any vault. You still pay the Uniswap pool fee and gas. The product is funded by the 1% buy / 1% sell transfer tax on $WAY trades.execute() when a rule is due and quotes the minimum acceptable output. It can trigger a rule. It cannot change one or redirect where the assets settle.Deployed, verified, and trading on Robinhood Chain. Fixed supply, owner renounced.
Buy on FlapCreate a recurring or dip plan, buy a basket, and watch the keeper execute it. Live on mainnet, unaudited.
Open the app