TORQUE

Reference

Verify every claim

Every public claim about TORQUE, with one command that checks it against Robinhood Chain mainnet. You need Foundry's cast, curl and python3. The outputs shown were read at block 79,285,243 (2026-10-03 18:08 UTC).

Set these once; every command below uses them:

Command
export RPC=https://rpc.mainnet.chain.robinhood.com
export MARKET=0xbee6Da89F879B018Fea5d7A78311db720B9D8096 VAULT=0xb4dBEF56F9E93ED9A7649E065252dc98013B96Bf
export NVDA=0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC DEPLOYER=0xA22B72d975d608Bd9Dd4945F4B28a4479A97967F

Or run them all at once from a clone of the repo: ./script/verify-claims.sh. It prints PASS or FAIL for each.

1. Both contracts are verified

The source in the repo compiles to exactly the bytecode on chain, both the creation code and the runtime code.

Command
for a in $MARKET $VAULT; do curl -s https://sourcify.dev/server/v2/contract/4663/$a | python3 -c "import json,sys;d=json.load(sys.stdin);print(d['address'],d['creationMatch'],d['runtimeMatch'])"; done
Output
0xbee6Da89F879B018Fea5d7A78311db720B9D8096 exact_match exact_match
0xb4dBEF56F9E93ED9A7649E065252dc98013B96Bf exact_match exact_match

2. No owner, no pause switch, no upgrades

Neither contract has an owner:

Command
cast call $MARKET 'owner()(address)' --rpc-url $RPC; cast call $VAULT 'owner()(address)' --rpc-url $RPC
Output
Error: server returned an error response: error code 3: execution reverted, data: "0x"
Error: server returned an error response: error code 3: execution reverted, data: "0x"

Neither is an upgradeable proxy: the standard EIP-1967 implementation slot is empty.

Command
for a in $MARKET $VAULT; do cast storage $a 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc --rpc-url $RPC; done
Output
0x0000000000000000000000000000000000000000000000000000000000000000
0x0000000000000000000000000000000000000000000000000000000000000000

Every function that can change state, from the verified ABI. There is nothing to pause, upgrade, withdraw or reconfigure. unwind only works after the feed has been dead for 7 days, and lend only accepts calls from the market:

Command
for a in $MARKET $VAULT; do curl -s "https://sourcify.dev/server/v2/contract/4663/$a?fields=abi" | python3 -c "import json,sys;print(sorted(f['name'] for f in json.load(sys.stdin)['abi'] if f['type']=='function' and f['stateMutability'] not in ('view','pure')))"; done
Output
['claim', 'close', 'knockOut', 'open', 'reportFeedDown', 'uniswapV3SwapCallback', 'unwind']
['approve', 'deposit', 'lend', 'mint', 'redeem', 'setMarket', 'transfer', 'transferFrom', 'withdraw']

The vault's one-shot link to the market is spent. Even the deployer cannot call it again (0x06ddda6b is MarketAlreadySet()):

Command
cast call $VAULT 'setMarket(address)' $MARKET --from $DEPLOYER --rpc-url $RPC
Output
Error: server returned an error response: error code 3: execution reverted, data: "0x06ddda6b"

3. The vault is at its $20 cap

Command
cast call $VAULT 'VAULT_CAP()(uint256)' --rpc-url $RPC; cast call $VAULT 'totalAssets()(uint256)' --rpc-url $RPC; cast call $VAULT 'maxDeposit(address)(uint256)' $DEPLOYER --rpc-url $RPC
Output
20000000 [2e7]
20050034 [2.005e7]
0

The cap is 20 USDG (6 decimals). The vault holds 20.05 USDG, its deposits plus interest earned, and accepts no more deposits.

4. Hedged 1:1

The NVDA the market holds must cover the NVDA its open positions are owed. With no position open, both are zero:

Command
cast call $NVDA 'balanceOf(address)(uint256)' $MARKET --rpc-url $RPC; cast call $MARKET 'openPositionIds()(uint256[])' --rpc-url $RPC
Output
0
[]

When positions are open, ./script/verify-claims.sh adds up getPosition(id).q for each and compares it with the balance. The dashboard's solvency board shows the same two numbers.

5. No bad debt

Command
cast call $MARKET 'totalBadDebt()(uint256)' --rpc-url $RPC
Output
0

6. Every position, from the contract's own events

Every Opened and Closed event TorqueMarket has emitted, with the transaction hash. Each close repaid the vault at least its 7.96 USDG loan:

Command
cast logs --from-block 78466999 --address $MARKET 'Opened(uint256 indexed,address indexed,uint256,uint256,uint256,uint256)' --rpc-url $RPC --json | python3 -c "import json,sys;[print('opened',int(l['topics'][1],16),l['transactionHash']) for l in json.load(sys.stdin)]"
cast logs --from-block 78466999 --address $MARKET 'Closed(uint256 indexed,uint256,uint256,uint256)' --rpc-url $RPC --json | python3 -c "import json,sys;[print('closed',int(l['topics'][1],16),l['transactionHash'],'repaid',int(l['data'][66:130],16)/1e6,'payout',int(l['data'][130:194],16)/1e6) for l in json.load(sys.stdin)]"
Output
opened 1 0x3a83b71d6d51e6ef1317dc3d2d0f848b7b262dda6be64bf959d7df9bb6bd2613
opened 2 0xecd96ef1ad6924f0c2c4de8726890bf49c2a54468ee30b2e31fe9647acf1badd
opened 3 0x1c765fde09c19128f4b15ea3cae3abda3435b1cba838b381be7bd93138f988b1
opened 4 0x7583534533cacf9b6afd4bc00f9b07d89cb549a781e0b06c15d6f4bf2bd6fd9a
opened 5 0x5a6e308d9fe765ed866a7a494d0234593135a94c2158655ea91c5cbd28055a01
closed 1 0xcf8a17fe9e5453e09fdb452c19d3a7deb8cad20b7ca1177210d823eb1b6d4315 repaid 7.960001 payout 1.980059
closed 2 0x989798fae86d717897dda9cb729c09bf9f800b04fbc88613be9a36a6dd1caf4c repaid 7.960002 payout 1.980048
closed 3 0xaf8eb096a3b793fa2006511509a31c240a60b0dc4ce7ef678da4618dbe0b4d6a repaid 7.960001 payout 1.980051
closed 4 0xb0228dac4f6fcca6cd8b8c70026a09bf2785333eb3da695650e0f30927089d1c repaid 7.960001 payout 1.980017
closed 5 0xbd8174553afb47d51c75cbb249a37f31e96529b5a25d724a6a67257edda5a8af repaid 7.960029 payout 1.979774

Any hash can be opened on the explorer, https://robinhoodchain.blockscout.com/tx/<hash>, or checked with cast receipt <hash> status --rpc-url $RPC, which prints 1 (success). The Deployments page lists every transaction, including the deployment and the vault seeding.