HeliQuant

On-chain (NEAR)

13 agent identities (firm + 12 desks), every desk output sealed, every decision anchored — verifiable on NEAR testnet, not claimed.

HeliQuant isn't "on-chain" as a slide. The firm has a real, verifiable footprint on NEAR testnet: a registered identity per agent, reputation that accrues from settled jobs, sealed desk outputs, anchored decisions, and an escrow vault that runs hire → trade → settle.

Parent account: heliquant.testnet · explorer: testnet.nearblocks.io

The deployed contracts

Three Rust contracts (near-sdk), all under the parent account.

ContractAccountRole
corecore.heliquant.testnetidentity (NEP-171, soulbound), reputation, validation credentials, job escrow, vault, anchor
musdcmusdc.heliquant.testnetNEP-141 test stablecoin (mUSDC) with a public faucet
alloraallora.heliquant.testnetstores Allora predictions pushed by the relayer (topic 14)

Trades run through a Rhea (Ref Finance) testnet pool — ref-finance-101.testnet, pool 2926 (mUSDC / wNEAR). The executor is an OutLayer Agent Custody wallet (a 64-hex implicit account, see the executor); the relayer holds a limited key as relayer.heliquant.testnet. The exact deployed Wasm hashes are in contracts/deployments/near_testnet.json.

13 agents registered

The firm (token 1) and all 12 desks (tokens 2–13) are registered identities in core. Each desk also has its own sub-account, e.g. regime.heliquant.testnet. Identity tokens are soulbound — they cannot be transferred.

tokenIdAgenttokenIdAgent
1HeliQuant (firm)8OI-Contrarian
2Regime/Technical (the ML — XGBoost)9flow-intel
3Macro (Allora)10whale
4On-chain/Risk11Carry
5Research12NEAR Fundamentals
6Smart-Money Flow13TimesFM Vol/Risk
7Smart-Social

Four on-chain primitives

Identity

register_agent mints a soulbound NFT per desk. The roster of who is in the firm is a contract view, not a claim.

Sealed outputs

Each org cycle, a desk writes its output hash with record_output as a credential against its token. A desk can only call that one method, with no deposit.

Anchored decisions

anchor writes a SHA-256 record hash as a NEP-297 event. Only the executor account may call it. Verify any row on NearBlocks.

Escrow vault

A client deposits mUSDC with ft_transfer_call. Only the executor can trade (through the configured DEX). Once the job matures anyone can call settle_job; the payout goes to the client, or becomes claimable with claim_payout if the transfer failed.

Why keys are limited

Agents never hold a full-access key. Each key is a NEAR function-call key restricted by the protocol to one contract and a fixed list of methods, with a gas allowance:

KeyAllowed methods on its contract
Desk (12)record_output on core
Relayersubmit_inference on allora

Calling any other method, calling another contract, sending NEAR, or attaching a deposit is rejected by the protocol itself. The owner's full-access key never leaves the owner's machine. /health/onchain shows each key's remaining allowance and failure count.

The executor: OutLayer custody

The executor account (the only account core accepts trade, recover_job, reconcile_job and anchor from) is a wallet in OutLayer Agent Custody. The agent holds only an API key; the signing key stays in OutLayer's TEE. The wallet policy allows only call to core.heliquant.testnet, at most 1 NEAR per transaction, and the owner can freeze the wallet from the OutLayer dashboard. /health/onchain shows the executor with mode: custody, its balance and policy state.

  • OutLayer Agent Custody is alpha. The address whitelist is not proven to apply to call receivers; the main restriction is the core contract itself.
  • The per-transaction multisig approval is switched off, otherwise every transaction would wait for the owner and the agent could not run unattended.
  • Rollback to a restricted function-call key (EXECUTOR_MODE=key) is documented in agents/DEPLOY.md.

NEAR Agent Market

The firm is listed on NEAR Agent Market as @heliquant, price $0.01 per call. A hire carries one asset in its brief (for example Analyze NEAR). The worker runs one analysis, anchors the decision with core.anchor (reference market:<assignment>) and submits a Markdown deliverable with the decision, the trade ticket, every desk's vote and the TEE proofs. A job includes up to 2 rounds of Request changes, each a fresh analysis; after that the worker re-submits the latest report with a note. The count is kept in Supabase (hq_state, key market:<assignment>), so it survives redeploys. No user funds move through a market job.

Honest scope

  • Decisions and outputs are sealed (hash proof-of-existence) — verifiable and tamper-proof. The paper trading floor itself is off-chain: positions are opened on Bitget Demo (or paper) and the chain records the decisions, not every fill.
  • The vault runs on testnet with a test token. mUSDC is free from the faucet and has no value.
  • Reputation accrues forward. It reads low until jobs settle. Nothing is pre-seeded.
  • The smoke-test anchor is not a trade. The first anchor call on testnet (made by the executor key during deployment, before the custody wallet took over) is labeled as a deploy smoke test everywhere it appears.

On this page