Scope

What Soothmark Checks

Soothmark is a GenLayer-native intelligent contract auditor that checks whether contract code uses the right validation/equivalence mechanism before AI, web data, API results, or rendered page content can affect on-chain contract data.

Soothmark helps GenLayer builders check if AI or fetched web data is properly validated before it changes what their contract stores.

Core path

The Soothmark audit path.

Soothmark traces one critical path: intent → nondeterminism → state impact → validation/equivalence → result.

01

Intent

02

Nondeterminism

03

State Impact

04

Verification Check

Intent

Soothmark identifies what the submitted contract is trying to do.

Nondeterminism

Soothmark detects executable logic that may produce different results across validators, such as web calls, rendered pages, AI prompts, and external unpredictable inputs.

State impact

Soothmark checks whether nondeterministic output can affect on-chain contract data.

Verification Check

Soothmark checks whether the exact nondeterministic state-changing path is protected by the correct GenLayer validation or equivalence mechanism.

Nondeterminism

What Counts as Nondeterminism

Executable sources

  • gl.nondet.web.get(...)
  • gl.nondet.web.request(...)
  • gl.nondet.web.render(...)
  • gl.nondet.exec_prompt(...)
  • AI output
  • Web/API output
  • Rendered external pages
  • Other external or unpredictable inputs

Executable usage only

Only executable usage counts. Mentions inside comments, strings, prompts, schema examples, documentation text, or recommendations do not count by themselves.

State impact

What Counts as State Impact

State impact means nondeterministic output can affect on-chain contract data.

Unsafe nondeterministic state impact

response = gl.nondet.web.get("https://api.example.com/price")
price = response.body.decode("utf-8")
self.last_price = price

This has state impact because external web output changes what the contract stores.

Safe deterministic state writing

self.message = new_message
self.update_count = self.update_count + u256(1)

This is deterministic state writing. It does not create nondeterministic state impact by itself.

Mechanisms

Validation and Equivalence Mechanisms

Known mechanisms

  • gl.vm.run_nondet_unsafe
  • gl.eq_principle.strict_eq
  • prompt_comparative
  • prompt_non_comparative

Path coverage matters

Soothmark does not judge protection by mechanism name alone. A mechanism is properly used only when it protects the same nondeterministic value that can affect on-chain contract data.

Protection may come from run_nondet_unsafe, strict_eq, prompt_comparative, or prompt_non_comparative when applied to the correct state-changing path.

prompt_comparative is not automatically rejected. It can be valid when the equivalence rule is tight enough for the stored value.

Non-goals

What Soothmark Does Not Check

General smart-contract security
Storage design unrelated to outside-data validation/equivalence
Frontend or app completeness
Dependency formatting
Public method completeness
Pagination or indexing
Dispute flow
Broad GenLayer documentation compliance
Unrelated error handling
Business logic quality unless it affects nondeterministic state validation

Intentionally narrow

Soothmark is intentionally narrow. It checks one critical GenLayer question: does contract code use the right validation/equivalence mechanism before AI or fetched web data affects on-chain contract data?

Classification

Classification Meaning

Certified

No executable nondeterminism exists, or nondeterministic output does not affect on-chain contract data, or the state-changing nondeterministic path is properly protected.

Certified

Conditional

Nondeterministic state impact exists and validation is present, but coverage, validator quality, or equivalence tightness may need improvement.

Conditional

Rejected

Nondeterministic output can affect on-chain contract data and no appropriate validation or equivalence mechanism protects that path.

Rejected

Ready to check a contract?

Soothmark

Soothmark helps GenLayer builders check if AI or fetched web data is properly validated before it changes what their contract stores.

Intent → nondeterminism → state impact → validation/equivalence → result.