hackquest logo

Stock Hours Guard

One call before you touch a tokenized stock. guard.check(token, price, maxBps) returns Allow, Warn or Block with reasons: halts, oracle pauses, corporate actions, stale feeds, copycats, sequencer heal

视频

项目图片 1
项目图片 2
项目图片 3
项目图片 4

技术栈

Solidity
Web3
Node

描述

One call before you touch a tokenized stock: guard.check(token, price, maxBps) returns Allow, Warn, or Block, with reasons. It is the halt, oracle-pause, corporate-action and sequencer-health check that Robinhood Chain does not give you in one call.

Stock Tokens trade 24/7; the stocks behind them do not. Chainlink prices every token, but nothing on-chain tells a contract that the market is closed, the stock is halted, a split lands tomorrow, the issuer paused the oracle, or that the NVDA address it was handed is a copycat. Robinhood's docs also say to check a Chainlink sequencer uptime feed before reading prices. Chainlink does not publish one for Robinhood Chain and has stopped adding networks. StockGuard fills that gap with a sentinel quorum (2 of 3, three independent hosts: Railway, a Mac, and an Android phone running Termux). No single dead or malicious sentinel can hide or fake an outage.

What it checks before you trade, lend against, or liquidate a Stock Token:

- Market session (Closed, Overnight, PreMarket, Regular, PostMarket)

- Trading halts, from Robinhood's own feed

- Pending corporate actions like splits, read from the token's ERC-8056 multiplier schedule

- Issuer oracle pauses and stale or invalid Chainlink feeds

- Price deviation against the price you were quoted

- Copycat tokens, via an allowlist built from official sources

- Sequencer health, through the sentinel quorum

Also included: a Uniswap V3 router wrapper, a Uniswap v4 beforeSwap hook, 22 Foundry tests, and a keeper live since September 25 with every session transition recorded on-chain.

Built solo for the Arbitrum Open House Singapore buildathon, Robinhood Chain track; first commit September 22, inside the window. This is testnet only. Testnet has no Stock Tokens, equity feeds or Uniswap V3, so the tokens, feeds and router are mocks with the exact mainnet interfaces; the Guard, wrapper and hook bytecode are unchanged for mainnet. No mainnet deployment yet and zero real users.

All contracts are deployed on Robinhood Chain Testnet (chain ID 46630) and verified on Blockscout. Repo: search GitHub for Evoxravenlaude Stock-Hours-Guard. Contract addresses, the live API and the full deployment record are in the repo's DEPLOY.md.

本次黑客松进展

All code was written inside the buildathon window; first commit September 22, no prior code.

Sept 22–24: StockGuard contract (registry, keeper-fed status, on-chain reads of Chainlink freshness, ERC-8056 effectiveAt, oraclePaused), keeper with Robinhood REST + NYSE 24/5 calendar, 11 tests, first testnet deploy, keeper live on Railway.

Sept 25–30: keeper running continuously; every session transition recorded on-chain.

Oct 1: v2 contract with sentinel quorum (2-of-3), redeployed; three sentinels live on Railway, a Mac, and Android/Termux; one real outage and recovery recorded. Uniswap V3 router wrapper and v4 beforeSwap hook, 22 tests.

Oct 2: all four contracts verified on Blockscout; live API fixed to return correct verdicts; docs made exact about what is mocked on testnet.

Oct 3: demo video, submission.

融资状态

None raised, none sought yet. Solo builder. Next step is ecosystem grants (Arbitrum, Robinhood Chain) to fund mainnet deployment, external sentinel operators, and a reference oracle adapter for lending markets.

队长
AAkanbi Damilola
项目链接
部署生态
RobinhoodRobinhood
赛道
DeFiRWAInfra