Verify it live
Six claims about who can move the money. Each one is checked against the chain when this page loads (cached for a minute), or comes with a command you can run yourself.
Pick a network. The checks run on the server when the page is built, against the real contract and Hyperliquid.
- checked live: true01
The contract, not a person, owns the vault's accounts.
One Ethereum-style address, derived from the contract through NEAR Chain Signatures, is both the Intents account and the Hyperliquid account.
Evidence and command
Recomputed now from
v1.signerforvault.nullpoint.near/hl-master:0x610da6eff2adec2aae201c2970fdafe66189b939. The contract's configured address:0x610da6eff2adec2aae201c2970fdafe66189b939.near contract call-function as-read-only v1.signer derived_public_key json-args '{"path":"hl-master","predecessor":"vault.nullpoint.near","domain_id":0}' network-config mainnet now - checked live: true02
The agent can trade, and it can't withdraw.
Its Hyperliquid key is an approved agent on the vault's account. Hyperliquid refuses withdrawals and transfers signed by an agent key.
Evidence and command
Agents approved on the vault's Hyperliquid account right now:
nullpoint-agent 0xd8b2be1be359685bd052cd5924541f38575ddb71. The attack script uses this key to trywithdraw3,usdSendandagentSendAssetto an outside address; all three are refused.npm run attack
- check with the command03
Swaps can only ever pay the vault.
sign_quote checks 1Click's signature, that the vault is recipient and refund address, the price and the cap, then builds the intent itself.
Evidence and command
The contract's unit tests run against real mainnet 1Click quotes, including a forged one that pays an attacker.
cd contracts && cargo test -p vault
- checked live: true04
The contract prices the vault itself.
Coin and USDC balances come straight from the Intents contract, priced with signed 1Click quotes. The agent reports only the Hyperliquid side, within 2% of what the contract expects.
Evidence and command
Latest snapshot: NAV
42.57 USDCat2026-11-12 22:54:45 UTC.near contract call-function as-read-only vault.nullpoint.near get_state json-args '{}' network-config mainnet now - checked live: true05
Every AI decision is signed and on the record.
The model runs in a NEAR AI Cloud enclave; its answer is signed, checked against the enclave's attestation, and stored on-chain.
Evidence and command
Latest AI decision:
HOLD(allowed by the limits), chatchatcmpl-fc2d6cdd-a97b-4be1-9b60-08b988215c3f, signed by enclave0xfe0071895500a9755c18044948ab4f4e1a7f337e.npm run attack:llm
- check with the command06
Your withdrawal doesn't depend on us.
execute_withdraw has no caller check: once a payout is signed, anyone can submit it, and it can only pay the person who asked.
Evidence and command
The end-to-end test deposits, requests a withdrawal, and submits the signed payout from the user's own account.
npm run e2e:testnet
| Vault contract | vault.nullpoint.near ↗ |
| The vault's address (Intents + Hyperliquid) | 0x610da6eff2adec2aae201c2970fdafe66189b939 ↗ |
| Agent account | agent.nullpoint.near ↗ |
| Intents contract | intents.near ↗ |
| MPC signer | v1.signer ↗ |
Latest payloads the contract asked NEAR's signers to sign
#4 intent_ft_withdraw · 2026-11-12 18:22 UTC
{
"signer_id": "0x610da6eff2adec2aae201c2970fdafe66189b939",
"verifying_contract": "intents.near",
"deadline": "2026-11-12T18:27:35.828Z",
"nonce": "Vij2xgAlKBKzAG00rpFf5xiNXKyV4xoyjtP6s1kw1ew=",
"intents": [
{
"intent": "ft_withdraw",
"token": "17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1",
"receiver_id": "nullpoint.near",
"amount": "4805994"
}
]
}#3 hl_send_asset · 2026-11-12 18:13 UTC
{
"type": "sendAsset",
"signatureChainId": "0xa4b1",
"hyperliquidChain": "Mainnet",
"destination": "0x754Ad91eC1806C6DD09909077aB02089eddC3C1E",
"sourceDex": "",
"destinationDex": "spot",
"token": "USDC:0x6d1e7cde53ba9467b783cb7c530ce054",
"amount": "5.755398",
"fromSubAccount": "",
"nonce": 1794507197221
}#2 intent_transfer · 2026-11-12 17:49 UTC
{
"signer_id": "0x610da6eff2adec2aae201c2970fdafe66189b939",
"verifying_contract": "intents.near",
"deadline": "2026-11-12T17:54:08.948Z",
"nonce": "Vij2xgAlKBKzANXVar5d5xjSgEjrJtvAkj0Ml3sOTqc=",
"intents": [
{
"intent": "transfer",
"receiver_id": "aacf170fbfc012f9b6d4f94a5cbcf6607eeab0601b079509ff7c18b664180a0b",
"tokens": {
"nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1": "29319392"
}
}
]
}#1 hl_approve_agent · 2026-11-12 17:47 UTC
{
"type": "approveAgent",
"signatureChainId": "0xa4b1",
"hyperliquidChain": "Mainnet",
"agentAddress": "0xd8b2be1be359685bd052cd5924541f38575ddb71",
"agentName": "nullpoint-agent",
"nonce": 1794505620221
}Check it without this site
Everything above is a public read. With near-cli-rs:
# The vault's state: owner, agent, parameters, last NAV, paused or not
near contract call-function as-read-only vault.nullpoint.near get_state json-args '{}' network-config mainnet now
# Every AI decision, with chat id and enclave address
near contract call-function as-read-only vault.nullpoint.near get_decisions json-args '{"from":"0","limit":50}' network-config mainnet now
# Every payload the contract asked NEAR's signers to sign
near contract call-function as-read-only vault.nullpoint.near get_signed json-args '{"from":"0","limit":50}' network-config mainnet now
# What the vault holds in NEAR Intents (USDC, nBTC)
near contract call-function as-read-only intents.near mt_batch_balance_of json-args '{"account_id":"0x610da6eff2adec2aae201c2970fdafe66189b939","token_ids":["nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1","nep141:nbtc.bridge.near"]}' network-config mainnet nowThe short is public on Hyperliquid's explorer under the same address. And npm run demo in the repo repeats the key checks with no keys at all (Run it yourself).