Back to skill

Security audit

TONSCAN wallet balance

Security checks across malware telemetry and agentic risk

Overview

This is a documentation-only skill for looking up public TON wallet information through TonScan, with the main privacy consideration that queried addresses are sent to TonScan.

Install only if you are comfortable sending TON wallet addresses you ask about to TonScan. Blockchain addresses are public, but the fact that you queried a specific address may still be visible to that external service.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

Vague Triggers

Medium
Confidence
91% confidence
Finding
The manifest description explicitly tells the agent to trigger for broad, casual phrases like 'check this address for me,' which can cause the skill to activate in ordinary conversation without clear user intent. Because the skill sends wallet addresses to a third-party service, over-broad triggering increases the chance of unintended data disclosure and unnecessary outbound requests.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill lacks a clear user-facing disclosure that supplied wallet addresses will be transmitted to TonScan, a third-party public API. Even though wallet addresses are public on-chain identifiers, users may not expect the assistant to forward them externally, creating a privacy and consent issue.

External Transmission

Medium
Category
Data Exfiltration
Content
## Primary Endpoint: Address Information
```
GET https://api.tonscan.com/api/bt/getAddressInformation?address={ADDRESS}
```

### Quick Balance Lookup (one-liner)
Confidence
90% confidence
Finding
This endpoint definition establishes that the skill transmits user-provided wallet addresses to an external service. In context, that transmission is the core function of the skill, but it still represents a real data-flow risk because third-party requests expose user queries and metadata outside the assistant's trust boundary.

External Transmission

Medium
Category
Data Exfiltration
Content
### Quick Balance Lookup (one-liner)
```bash
curl -s "https://api.tonscan.com/api/bt/getAddressInformation?address=EQDtFpEwcFAEcRe5mLVh2N6C0x-_hJEM7W61_JLnSF74p4q2" \
  | jq '.json.data.detail.balance'
```
Confidence
89% confidence
Finding
The curl example demonstrates direct external transmission of an address to TonScan. While the example itself is not malicious, it normalizes sending user data to a third party without any disclosure or consent step, which is risky in an assistant skill context.

External Transmission

Medium
Category
Data Exfiltration
Content
### Full Response with Human-Readable Balance
```bash
ADDRESS="EQDtFpEwcFAEcRe5mLVh2N6C0x-_hJEM7W61_JLnSF74p4q2"
curl -s "https://api.tonscan.com/api/bt/getAddressInformation?address=${ADDRESS}" \
  | jq '{
      address: .json.data.detail.address,
      balance_nanoton: .json.data.detail.balance,
Confidence
89% confidence
Finding
This example sends a variable address to TonScan and processes the response for display, confirming a live external data transfer path. In an automated skill, such examples can translate into production behavior that leaks queried wallet addresses and request metadata to an outside provider.

External Transmission

Medium
Category
Data Exfiltration
Content
import requests

def get_ton_balance(address: str) -> dict:
    url = "https://api.tonscan.com/api/bt/getAddressInformation"
    resp = requests.get(url, params={"address": address})
    resp.raise_for_status()
Confidence
92% confidence
Finding
The Python example performs an outbound HTTP request with a user-supplied address, creating a concrete third-party data exfiltration path. Although expected for this skill's purpose, it remains security-relevant because the code includes no consent mechanism, no privacy warning, and no restrictions on when transmission occurs.

External Transmission

Medium
Category
Data Exfiltration
Content
## JavaScript / Node.js Example
```javascript
async function getTonBalance(address) {
  const url = new URL("https://api.tonscan.com/api/bt/getAddressInformation");
  url.searchParams.set("address", address);

  const res = await fetch(url);
Confidence
92% confidence
Finding
The JavaScript example uses fetch to send the address to TonScan, again confirming external transmission of user-supplied data. This is not malicious code, but in the skill context it is a genuine privacy boundary crossing and should be treated as such.

External Transmission

Medium
Category
Data Exfiltration
Content
**Checking for empty/uninitialized accounts:**
```bash
curl -s "https://api.tonscan.com/api/bt/getAddressInformation?address=..." \
  | jq 'if .json.data.detail.balance == "0" then "Empty wallet" else "Has funds" end'
```
Confidence
87% confidence
Finding
This example continues to show external address lookup behavior against TonScan. Repeated undocumented examples reinforce a pattern of outbound transmission without consent language, which makes accidental privacy violations more likely when the skill is integrated into an agent.

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.