Orchard

Five contracts on Base. Trading fees become AAPLc.

ORCHARD protocol

Activity in. Apple out.

Orchard is a five contract protocol on Base. Trading on the single ORCHARD/USDC Uniswap V4 pool is taxed by a hook. The tax is collected in USDC, converted into AAPLc (Coinbase tokenized Apple stock on Base), then split: 80% streams to ORCHARD stakers, 20% goes to a permanent AAPLc reserve that anyone can redeem against by burning ORCHARD.

swap on ORCHARD/USDC
   └─ THE GRAFT (hook) skims 3% in USDC ──► Harvester
                                              │ harvest() permissionless, oracle bounded
                                              ▼
                                        USDC ─► AAPLc
                                              │
                          80% ◄───────────────┴───────────────► 20%
                       Orchard (stakers pick AAPLc)        The Grove (burn ORCHARD, redeem AAPLc)

Five contracts, five trees. The Grove is the blue one.

Lexicon

TermMeaning
Plantstake ORCHARD
Pickclaim AAPLc
Uprootwithdraw ORCHARD
Harvestconvert skimmed USDC into AAPLc
The Graftthe Uniswap V4 hook
Rowsthe staking pool
The Grovethe AAPLc reserve

Contracts

#ContractRole
1OrchardTokenERC-20, fixed supply of 100,000,000, burnable. Name Orchard, ticker ORCHARD.
2GraftHookUniswap V4 hook on the single ORCHARD/USDC pool. Skims the fee in USDC.
3HarvesterHolds skimmed USDC. Permissionless harvest() converts to AAPLc and splits.
4OrchardStaking. Stake ORCHARD, earn AAPLc. Synthetix StakingRewards model.
5GrovePermanent AAPLc reserve. Burn ORCHARD to redeem a pro rata share.

The Graft

  • Permissions: beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta.
  • Only the deployer can initialize the pool, only once, only for the ORCHARD/USDC pair.
  • Fee: 3% on buys and sells. Hard cap 3%. The fee launches at the cap. The owner can only lower it.
  • The fee is always charged in USDC. When USDC is the unspecified currency the hook charges in afterSwap through the return delta. When USDC is the specified currency it charges in beforeSwap through BeforeSwapDelta.
  • The hook calls poolManager.take(USDC, harvester, fee). It never holds funds.
  • Pool LP fee: static 0.30%.

Harvester

State: lastHarvest, harvestCount, totalUsdcHarvested, totalAaplBought, and an onchain harvests array. The array exists so the frontend needs no indexer.

harvest(), callable by anyone:

  1. Requires one hour since the last harvest.
  2. Takes min(balance, MAX_PER_HARVEST), at least MIN_HARVEST. The cap exists because AAPLc liquidity is thin.
  3. Reads the Chainlink AAPLc/USD feed and refuses a stale price. If the feed is stale, USDC waits.
  4. Pays the caller a tip of 0.5% in USDC.
  5. Swaps the rest to AAPLc through the configured route with a 1.5% slippage bound derived from the feed.
  6. Splits the AAPLc received: 80% to Orchard.notifyRewardAmount, 20% to the Grove.
  7. Pushes the harvest record and emits Harvested.

Route: the Uniswap V4 AAPLc/USDC pool, swapped directly through PoolManager.unlock. A small ISwapRoute interface lets the owner replace the route if the pool dies. This is the only owner power that touches the flow of funds.

Rows (Orchard staking)

  • Fork of Synthetix StakingRewards. Staking token ORCHARD, reward token AAPLc, stream duration 24 hours.
  • notifyRewardAmount callable only by the Harvester. Leftover plus new amount restreams over 24 hours. This kills stake sniping around harvests.
  • stake (Plant), withdraw (Uproot), getReward (Pick), exit.
  • No lock, no exit fee, no APY stored onchain, no APY displayed.
  • withdraw never depends on an AAPLc transfer succeeding. If AAPLc transfers are paused by the issuer, users can still uproot their ORCHARD.

The Grove

  • redeem(amount): your pro rata share of the Grove's AAPLc for the ORCHARD you burn.
  • floorPerToken() returns raw AAPLc per ORCHARD, scaled by 1e18 so a small reserve against a 100M supply does not truncate to zero. The UI converts to USD with the feed.
  • No owner function can move Grove AAPLc. None.
  • The Grove only grows.

Parameters

ParamValue
Supply100,000,000 ORCHARD, fixed
Distribution90% single sided LP in ORCHARD/USDC, 10% treasury (PoC placeholder)
Hook fee3% both ways, only decreasable
Split80% Orchard, 20% Grove
RouteUniswap V4 AAPLc/USDC pool
Stream24 hours
Harvestmin interval 1h, cap 1,000 USDC, min 50 USDC, tip 0.5%, slippage 1.5%

Owner powers

The owner is the deployer EOA.

Can: lower the hook fee, tune Harvester caps and tolerances within hard bounds, change the swap route.

Cannot: touch staked ORCHARD, touch Grove AAPLc, raise the fee, redirect the split, mint ORCHARD.

Issuer controls and risks

  • AAPLc is a B20 Asset token issued by Coinbase for eligible non-US persons. The issuer can pause transfers and apply transfer policies. If AAPLc is paused, picking and redeeming halt until it resumes. Uprooting ORCHARD always works.
  • AAPLc carries a WAD multiplier for dividends and splits. Protocol accounting is in raw units and does not rebase. The UI shows scaled units.
  • The Chainlink feed can be stale outside US market hours. Harvests wait for a fresh price.
  • The AAPLc/USDC pool is thin. The per harvest cap and slippage bound limit the damage of a bad fill. If the pool dies, the owner can point the Harvester at another route.
  • Uniswap V4 hooks are new code. The hook is audited by nobody yet. This is a proof of concept.
  • No affiliation with Apple, Coinbase or Base. ORCHARD confers no rights to Apple stock beyond what the Grove holds.

Contract addresses

No deployment for chain 84532 yet.

Orchard is an independent protocol. It is not affiliated with, endorsed by, or sponsored by Apple Inc., Coinbase, or Base. AAPL is a trademark of Apple Inc. AAPLc is issued by Coinbase; tokenized securities are offered to eligible non-US persons only. Nothing on this site is investment advice. Amounts shown are read from the chain and may be delayed. Contracts are unaudited during the proof of concept.