OSCRA
Developers

Two contracts. No owner, no upgrade, no hidden switch.

Everything OSCRA does on-chain lives in OscraRunbook and OscraKeel on Robinhood Chain (chain 4663). Settings are constructor values; nothing can change them after deployment.

OscraRunbook

0x1b9ac660b034e7ed285518a18443af12a854eb92

Needs no token. Fee 20 bps, holders 10 bps, zero until bound.

OscraKeel

not deployed yet

Deployed after $OSCRA launches (its address is a constructor value).

OscraRunbook functions.

openPlan(terms) / tunePlan(id, terms)
Write or change a plan: lane, order size, pace, budget, ceiling, slippage, guard, target, tip, start.
holdPlan / resumePlan / closePlan(id)
Owner-only state changes.
runPlan(id)
Anyone may call when due. Checks feed age, ceiling, guard and target, pulls one order, swaps, delivers to the owner.
post(lane, sell, weightBps)
Publish an idea as a desk; the feed price is stored with it.
follow(desk, terms) / unfollow(desk)
Start or change a follow with your limits; only later ideas count.
skip(signalId)
Veto one idea for your wallet.
mirror(follower, signalId)
Anyone may call inside the follower's copy window. Applies every follower limit, then buys or sells.
bind(keel)
One call, once, by the deploying wallet: links the staking contract and switches fees on.

Events: PlanOpened, PlanTuned, PlanStateChanged, Bought, Posted, Followed, Unfollowed, FollowStopped, Skipped, Mirrored, Bound. Limits: pace 1 h to 90 d, slippage 0.5% to 5%, review delay up to 48 h, copy window 6 h, tip up to 1/10 of an order.

OscraKeel functions.

stake(amount) / unstake(amount)
Stake $OSCRA; unstaking waits while a poll you voted in is open.
pour() / claim()
Count newly arrived USDG fees / pay out your share.
openPoll(title, choices, duration)
Needs 500,000 $OSCRA staked; 2 to 6 choices, 1 to 14 days.
vote(id, choice)
Weight = your stake; locks it until the poll ends.

Events: Staked, Unstaked, Poured, Claimed, PollOpened, Voted.

Lanes fixed at deployment.

Swaps go through Uniswap v3 SwapRouter02 0xCaf681a66D020601342297493863E78C959E5cb2 against USDG 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168. Each deployment can be checked against this build with npm run verify-deployment, which compares runtime code, every immutable, the stored lanes and the exact constructor input.