Automated strategies for tokenized assets
Tokenized stocks.
Shifted by your rules.
Set a price trigger, a recurring buy or a target mix against tokenized stocks on Robinhood Chain. shift watches each pool's 300 second average and executes on-chain the moment your rule is true. Your tokens stay in your wallet until it fires.
Real funds, real swaps, no guarantees.
Live markets
Every route, straight from the pools.
Write a rule
Read it back before you set it. What the sentence says is what goes on-chain.
This only types into the fields below. Read what it filled in, change anything, then set the rule yourself.
If USDG, sell % of my balance into USDG.
Take at most NVDA per run. Accept bps slippage . Wait s between runs (0 runs once). Expire at unix time (0 never).
Every s, buy with USDG.
Stop after runs (0 keeps going for as long as the approval lasts). Accept bps slippage . Expire at unix time (0 never).
Hold 100%
Rebalance when a leg drifts past bps, at most once every s, moving at most USDG per run across buys and sells. Accept bps slippage . Expire at unix time (0 never).
Your rules
Every rule this wallet owns, with the reason it can or cannot fire right now.
How it holds up
- Your tokens stay put
- shift holds nothing between transactions. You approve the contract, it pulls exactly the computed amount at execution, swaps it, and sends the output straight back to your wallet. Zero balance before, zero after.
- The trigger is an average
- Conditions read each Uniswap V3 pool's time-weighted average over 300 seconds, through
observe(). One block of price games cannot move it far. Every listed pool was checked on-chain to hold enough observations to answer for that window. - Spot has to agree
- Before every swap the contract compares live spot to the average. More than 3% apart and the transaction reverts, which kills manipulate-then-execute inside one block. The minimum output comes from live spot less your slippage bound, capped at 150 bps.
- Who can execute
- Your own rules, always:
execute(ruleId)works for the owner. Everyone else goes through an allowlist of keepers until open execution is switched on. shift runs its own keeper on a cron, so you do not have to watch. - Pinned to a pool
- Each rule records its asset's pool, fee tier and decimals when you set it, and always trades against that record. Changing the asset list later cannot redirect a rule that already exists.
- Locked means locked
- A rule that cannot fire says why, in the contract's own words, read live from
ShiftLens.checkRule. Nothing in this page decides whether a rule is executable; it only reports what the chain says. - Allowances are shared
- One allowance per token covers every rule you have on that token. Approving here reads what is already approved and adds to it rather than replacing it, so a new rule cannot starve an old one.
- $SHIFT
- CA: soon. The protocol fee is 10 bps per swap leg, and half of it pays the keeper that ran the rule. A stock-to-stock rebalance is two legs, so it pays the fee twice, about 20 bps on the round trip. The treasury's half will buy back and burn $SHIFT once it exists. None of that is live and this contract does not do the buyback itself.
- Risk
- Software moving real funds through real swaps. Rules can revert, execution can be late, keepers can be away, and averages have limits. Use amounts you can afford to be wrong about.
One press
Set it once.
shift handles the rest.
Write the rule, approve what it may spend, and set it. A keeper checks every rule on a five minute cadence, and you can always run your own rule yourself.
Write your first rule