Veltr Agent

Technical method

How Veltr reads the chain

Every figure on this site is derived from Robinhood Chain mainnet state. Nothing is estimated, sampled, or backfilled from a third-party index.

01 · Discovery

Tokens are found by interface, not by list

Robinhood publishes stock tokens continuously, so a hardcoded address list goes stale. Veltr enumerates ERC-20 contracts on the chain and probes each one for the ERC-8056 interface. A contract that answers uiMultiplier() is a stock token. The coverage set therefore extends itself as Robinhood lists new symbols.

function uiMultiplier()    view returns (uint256)
function newUIMultiplier() view returns (uint256)
function effectiveAt()     view returns (uint256)
function balanceOfUI(address) view returns (uint256)

event UIMultiplierUpdated(
    uint256 oldMultiplier,
    uint256 newMultiplier,
    uint256 effectiveAtTimestamp
)

02 · The mechanism

Corporate actions move a multiplier, never a balance

Stock tokens do not rebase. A split or reinvested dividend updates an on-chain multiplier while every holder's raw balance stays byte-for-byte identical. True exposure is a derived quantity:

underlyingShares = rawBalance × uiMultiplier ÷ 1e18

This design is excellent for contracts — no balance rewrites, no unbounded loops — and hazardous for anything that displays a number to a person. An interface calling plain balanceOf is correct only while the multiplier is exactly 1.0.

03 · Early warning

A scheduled action is readable before it lands

The pair newUIMultiplier() and effectiveAt() expose an action that is committed on-chain but not yet in force. This is the entire basis for acting in advance: the window between commitment and effect is the only period in which a position can be adjusted with full knowledge of what is coming.

Because these actions are scheduled rather than adversarial, detection does not require low-latency infrastructure. A polling interval measured in seconds is sufficient, and there is no ordering race to lose.

04 · Execution

EIP-7702, scoped so that compromise is survivable

Autonomous execution uses EIP-7702 delegation rather than an ERC-4337 smart account. The distinction is practical: a 4337 account has a new address, which would require users to migrate existing lending and liquidity positions before Veltr could protect them. EIP-7702 lets an existing externally-owned account delegate to contract logic while keeping its address, so Veltr can act on positions a user already holds.

The delegation is signed and its caveats are enforced by contracts already deployed on this chain. Scope as it actually stands:

allowed target     Uniswap V3 PositionManager (only)
allowed selectors  decreaseLiquidity, collect, burn
recipient          pinned to the delegating account
native value       0 wei
expiry             30 days
redemptions        50 maximum

Uniswap V4 is deliberately excluded. Argument-level enforcement pins a value at a fixed byte offset, which reaches V3's collect recipient but not V4's, where the recipient sits inside a variable-length action blob. Including it would leave a path where funds could be sent elsewhere, so one fully constrained venue is used rather than two with a gap.

The key cannot open a position, cannot increase leverage, cannot approve a spender, and cannot name a recipient other than the owner. This is demonstrated rather than asserted: a simulated call to an unlisted contract is refused by name — AllowedTargetsEnforcer:target-address-not-allowed — while a permitted call passes every caveat and reaches Uniswap.

05 · Sources

What each figure comes from

  • Multiplier state, effective timestamps, balancesDirect eth_call against Robinhood Chain mainnet, batched through Multicall3
  • Token discovery, holder counts, USD price, 24h volume, logosBlockscout public API — no key required
  • Chain identityChain ID 4663 · Arbitrum Orbit L2 · Ethereum blob data availability
  • Agent narrationFree-tier Groq or Gemini, constrained to the chain read above; falls back to deterministic output when no key is present

The public RPC endpoint is rate-limited and documented as unsuitable for production traffic. Set VELTR_RPC_URL to a dedicated provider before deploying.

06 · Limits

What this tool does not claim

Veltr reports chain state and the arithmetic that follows from it. It does not forecast prices, evaluate securities, or recommend positions. Stock tokens on Robinhood Chain are debt securities rather than equity, and holders receive no shareholder rights — a legal distinction this tool surfaces but does not interpret.

Corporate-action timing is coordinated by Robinhood as issuer. Chainlink does not publish a corporate-action calendar for these assets, so any action not yet committed to newUIMultiplier is not visible on-chain to Veltr or to anyone else.