Uniswap v4 · Live proof on Base Sepolia

Markets with lifetimes.

Give automated LP positions bounded capital authority and a hard onchain lifetime.

ShadeHook’s first proven primitive is a temporary Uniswap v4 Session LP. If the original bot or operator disappears, the authorized post-expiry exit remains available. Anyone can submit the exit transaction after expiry; exit is permissionless, not automatic.

Finite market lifetime

Official ShadeHook crescent-hook mark
ACTIVEBOUNDARYTERMINAL

Markets that know when to stop.

V2 proof complete: 7200-second Session LP · permissionless exit · COMPLETE receipt.

Session duration
15 minutes → 7 days

Configurable per mandate.

Canonical live proof
7200-second hardened Session LP on Base Sepolia

ShadeHook sessions can be configured within the supported duration bounds. The current hardened proof completed a 7200-second session, permissionless post-expiry exit, settlement, and a COMPLETE receipt on Base Sepolia.

Duration is chosen before deployment. Expiry is fixed at initialization time plus that duration and cannot be extended through the UI. Swaps are available within the mandate and refused when it ends; permissionless exit remains a separate action that anyone can submit after expiry.

BOUNDED SESSION LP · BASE SEPOLIA

ShadeHook V2 — Full Bounded Session LP Lifecycle Proven

A bounded Session LP completed its full lifecycle on Base Sepolia: funded, activated, expired onchain, exited permissionlessly, settled, and produced a verifiable COMPLETE receipt.

After expiry, the authorized exit path remains available even if the original operator does not return.

  1. 01Mandate
  2. 02Bounded Session EOA
  3. 03Authorization
  4. 04Liquidity
  5. 05ACTIVE
  6. 06Expiry
  7. 07Permissionless Exit
  8. 08Settlement
  9. 09COMPLETE Receipt

HARDENED LIFECYCLE PROOF

COMPLETE · BASE SEPOLIA
Network
Base Sepolia
Session
7200 seconds
Position NFT
28577
Exit state transition
ACTIVE → EXITED
Final liquidity
0
Permissionless exit
Verified · transaction submitted after expiry
Settlement/accounting
PASS
COMPLETE receipt
Generated
RPC verification
PASS · Canonically verified through two separate RPC providers
COMPLETE receipt digest
0x99b5e88e6e61d599c9b88fe6998d6f83831767ed79838944e0e6980e4204e9d7
VIEW COMPLETE RECEIPT

Recorded canonical verification at Base Sepolia block 47396098. COMPLETE reflects the canonical verifier result.

WHAT WAS PROVEN

A funded, bounded Session EOA completed ENTRY / EXIT authorization and owner steps 1–7, reached ACTIVE, passed real onchain expiry, exited permissionlessly, and completed settlement/accounting with a verifiable COMPLETE receipt.

This is the Base Sepolia reference implementation. Permissionless exit still requires someone to submit the exit transaction.

WHY IT MATTERS

Autonomous agents should not need indefinite LP authority. ShadeHook gives liquidity bounded capital, a defined lifetime, enforceable expiry, an authorized post-expiry exit path, and a verifiable receipt.

After expiry, anyone can submit the authorized exit transaction without requiring the original operator to return.

Earlier proof · 900-second Session LP

The previous Base Sepolia milestone demonstrated an active swap, exact 900-second expiry, read-only post-expiry swap refusal, and full withdrawal. Its recovery execution path and original evidence are preserved below.

  1. Mandate
  2. Coordinator deployment
  3. Permit2 authorization
  4. Hook + pool initialization
  5. Liquidity provision
  6. Active swap
  7. Exact 900-second expiry
  8. Post-expiry swap refusal
  9. Full liquidity withdrawal
  10. Canonical evidence

EARLIER 900-SECOND PROOF

TIME-BOUNDED SESSION LP
Network
Base Sepolia
Evidence execution mode
RecoveryRecovery identifies the execution/evidence path used for this lifecycle; it does not change the proven 900-second Session LP behavior.
Session
900 seconds
Lifecycle transactions
8 canonical transactions
Active swap
0.01 USDC → 0.000009865332631547 WETHUSDC input raw: 10000
WETH output raw: 9865332631547
Observed in this specific Base Sepolia proof; not a market price benchmark.
Expiry enforcement
Post-expiry swap refused with MarketExpired
Expiry refusal
Read-only eth_call · No state change · No gas paid
Final liquidity
0
Withdrawal
Confirmed
Confirmations required
20-confirmation policy satisfied
Minimum observed at evidence generation
145
Evidence status
VALID

V2 canonical transaction ledger

  1. Coordinator deployment0xef79c053…cab41809
  2. Permit2 LP USDC authorization0x3668fa97…b9c607da
  3. Permit2 LP WETH authorization0x13dbcb77…7284ab3d
  4. Permit2 swap authorization0xac12e8e1…2546c337
  5. Atomic hook deployment + pool initialization0x45293d0a…97136dbd
  6. Add liquidity0x98e75745…7f53838a
  7. Active swap0x8b081b69…340781a5
  8. Full withdrawal0x3c1cc2a8…1f9ac551
Proposal
BASE_SEPOLIA_V2_FRESH_20260916_232922
VIEW EARLIER CANONICAL PROOF

ROBINHOOD CHAIN

Robinhood adapter fork-validated

ShadeHook’s bounded Session LP lifecycle has been adapted for Robinhood Chain and validated against the official Uniswap v4 mainnet deployment in a local fork.

FORK VALIDATED · NOT YET LIVE DEPLOYED

Lifecycle testedMandate → ACTIVE → expiry → permissionless exit → settlement

Official mainnet dependencies · synthetic local ERC20s · no public deployment

Fork block 78694485 · Synthetic local ERC-20 assets · 900-second simulated expiry. No Robinhood Stock Tokens were used.

BASE SEPOLIA
LIVE PROOF

TESTNET · complete bounded Session LP lifecycle

ROBINHOOD CHAIN
FORK VALIDATED · NOT YET LIVE DEPLOYED

Mainnet integration prepared · live deployment pending

AQUA STRATEGY SESSION
QUALIFIED LOCAL POC · NOT PUBLIC-CHAIN DEPLOYED

Controlled Anvil proof using unmodified Aqua and SwapVM

Building LP automation on Robinhood Chain?

For LP automation builders and liquidity operators: bring one Base Sepolia workflow to evaluate a bounded Session LP. Robinhood live deployment remains pending.

Request a technical test

01 · The primitive

A market should be able to end.

Ordinary persistent AMMs remain swappable while usable liquidity exists. ShadeHook provides bounded, temporary Uniswap v4 Session LP mandates with an onchain terminal timestamp.

PERSISTENT AMM

Swaps continue while liquidity remains.

Swaps remain available while usable liquidity exists.

SHADEHOOK MARKET

Swaps reject after the terminal timestamp.

After expiry, swaps reject at the hook level. Permissionless exit remains available afterward; someone must submit the transaction.

02 · Thesis

Bounded authority for programmable capital. Start with liquidity that knows when its mandate ends.

Proven anchor Hardened Uniswap v4 Session LP · 7200 seconds · permissionless exit · COMPLETE receipt · Base Sepolia

Architecture ShadeHook Core defines bounded mandates. Venue adapters enforce venue-specific constraints. Agents, routers and operators act only within those mandates.

Explored next The Aqua Strategy Session demonstrates bounded delegated strategy management with unmodified Aqua and SwapVM in a qualified local PoC.

Who it serves LP automation builders, market makers, liquidity managers, vault operators, issuers and RWA platforms, agent teams, and treasury or wallet systems.

03 · Lifecycle

A bounded session, from mandate to receipt.

A mandate bounds capital and lifetime. After real onchain expiry, anyone can submit the authorized exit; settlement produces a verifiable receipt.

  1. 01

    MANDATE

    Bound capital and lifetime, fund the Session EOA, and authorize entry and exit.

  2. 02

    ACTIVE

    Provide liquidity within the authorized session constraints.

  3. 03

    EXPIRE

    Real onchain expiry ends the session; permissionless exit becomes available.

  4. 04

    SETTLE

    A submitted permissionless exit removes liquidity. Settlement/accounting produces a COMPLETE receipt.

Hardened proof complete: 7200 seconds on Base Sepolia · ACTIVE → EXITED · final liquidity 0.

04 · Earlier AgentKit validation

The agent respected the market boundary.

Separate earlier proof: same-market lifecycle verified on Base Sepolia. This is not the V2 Session LP run above.

SAME MARKET

EXECUTE EXPIRE REFUSE WITHDRAWNatural expiry, same-PoolId refusal and LP withdrawal reconciled.

ACTIVE PHASE

INSPECT PREPARE HUMAN APPROVAL EXECUTE RECONCILEA bounded swap proceeded only after approval.

On Base Sepolia, the same ShadeHook market executed a bounded AgentKit swap after explicit human approval, naturally expired, was refused by AgentKit on that same PoolId, and then allowed the LP to withdraw liquidity after expiry.

05 · Earlier proof ledger

A completed same-PoolId lifecycle.

This ledger belongs to an earlier, separate ShadeHook proof and is not the V2 time-bounded Session LP lifecycle shown above.

VERIFIED · BASE SEPOLIA
AgentKit transaction

One approved CDP-wallet transaction · receipt block 46220424

LP withdrawal after expiry

LP-signed withdrawal · receipt block 46527419

Same PoolId
0x787843cf…055e2ab8
CP94
Complete earlier lifecycle proof
Network
Base Sepolia · 84532
Technical evidence
Swap receipt: amountIn / output / minOut
10,000 raw USDC (0.01 USDC) · 9,662,265,651,290 wei WETH · 9,613,954,323,033 wei WETH
Swap receipt: liability / backing
1 → 2 / 1 → 2
Swap receipt: tick / liquidity
207033 → 206827 · 30000000000
Withdrawal liquidity
NFT 27245 · 30,000,000,000 → 0
Returned to LP
0.968680 test USDC · 0.000929155699767676 WETH
After withdrawal
EXPIRED · MARKET_EXPIRED · LP nonce 23 → 24
Final liability / total liability / backing
2 / 2 / 2
Final custody: native / USDC / WETH
Coordinator 0 / 0 / 0 · ShadeHook 0 / 0 / 0

06 · Architecture

A small protocol surface.

Independent lifecycle enforcement and PoolManager-native accounting stay grouped around one canonical market.

Market identity
Canonical PoolKey / PoolId binding · expected initial price · one-shot initialization
Lifecycle
Bounded Session EOA · Coordinator / Hook / Executor · ENTRY / EXIT authorization · 7200-second Base Sepolia proof · permissionless post-expiry exit · COMPLETE receipt
Accounting / control
Immutable quote currency · bounded immutable fee config · ERC-6909-backed liabilities · no owner, upgrade, pause, rescue, or sweep

07 · Status

Proof with clear limits.

Base Sepolia — LIVE PROOF · TESTNET
A bounded Session LP completed mandate, authorization, liquidity, ACTIVE state, real expiry, submitted permissionless exit, settlement/accounting, and a COMPLETE receipt.
Canonical verification
PASS · Canonically verified through two separate RPC providers
Robinhood Chain — FORK VALIDATED · NOT YET LIVE DEPLOYED
Validated against official mainnet Uniswap v4 dependencies using synthetic local ERC20s. No live deployment yet. No Robinhood Stock Token execution is claimed.
Robinhood testnet
Not claimed because official Uniswap v4 deployment provenance has not been confirmed.
Aqua — QUALIFIED LOCAL POC · NOT PUBLIC-CHAIN DEPLOYED
Bounded Aqua strategy management demonstrated with unmodified Aqua and SwapVM on controlled local Anvil. Fresh strict verification is local-only.
Not yet claimed
Production deployment · external production audit · formal verification · production user volume · real RWA execution · portfolio-value or loss protection
Operational boundary
Permissionless exit requires a submitted transaction; it is not automatic. Aqua expiry also triggers no automatic cleanup.

Does your LP automation need a bounded end-state?

For LP automation builders and liquidity operators. Bring one Base Sepolia workflow. Test whether a bounded Session LP can limit its capital, lifetime, and post-expiry exit path.

Request a technical test