nautilus-offchain
Integrate Nautilus offchain TEE compute for a Sui project. Use when the user mentions Nautilus.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Integrate Nautilus offchain TEE compute for a Sui project. Use when the user mentions Nautilus.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Pick a brand name, color palette, or typography for a Sui product. Use when the user wants to name or brand a Sui project.
Build an AI agent that signs Sui transactions or runs onchain actions. Use when the user wants an AI agent on Sui.
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
Build a mobile Sui app with React Native or the Sui Mobile SDK. Use when the user wants iOS, Android, or mobile Sui flows.
Pair with a coding agent to build a Sui MVP step by step. Use when the user wants to build the MVP iteratively with an agent.
Author Sui Move modules and packages with a senior Move dev as your pair. Use when the user wants to write, build, author, add, or scaffold Move code, smart contracts, or Sui programs at the module or function level, in any phrasing.
| name | nautilus-offchain |
| description | Integrate Nautilus offchain TEE compute for a Sui project. Use when the user mentions Nautilus. |
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track nautilus-offchain build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track nautilus-offchain build started >/dev/null 2>&1 &
true
If TEL_PROMPTED is no, before doing real work, ask the user:
Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in
~/.suiperpower/config.json.A) Sure, anonymous B) No thanks
Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.
Guides the user through building verifiable off-chain computation on Sui using Nautilus. The result is a Rust server running inside an AWS Nitro Enclave whose outputs are cryptographically verified by a Move contract on chain. Covers both the enclave-side Rust code and the on-chain Move verification logic.
find-next-sui-idea first.scaffold-project first.build-with-move instead.pyth-oracle instead.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
.suiperpower/build-context.md from scaffold-project. Read it if present.If unclear, interview the user for:
A Move module using enclave::enclave to register and verify enclave signatures.
A Rust server (Axum) implementing the enclave logic with Nautilus SDK endpoints.
Integration code: PTB or TS that calls the enclave server, posts verified results on chain.
Append to .suiperpower/build-context.md:
## nautilus-offchain session, <timestamp>
- enclave logic: <what it computes>
- move module: <module::name>
- rust server endpoints: <list>
- pcr values: <pending build | recorded>
- deployment: <local | AWS Nitro>
- open issues: <list>
Decide if TEE is needed
build-with-move.Design the enclave logic
Write the Move contract
enclave::enclave module functions. See references/nautilus-architecture.md for the full API.new_cap<T> for admin capabilities.EnclaveConfig with expected PCR values via create_enclave_config.verify_signature to validate enclave output before acting on it.verify_signature does not enforce this).Build the Rust enclave server
git clone https://github.com/MystenLabs/nautilus./health_check, GET /get_attestation, and POST endpoint for the custom logic.Deploy the Move package
sui move build and sui client publish.create_enclave_config with the PCR values from the built enclave image.Deploy the enclave
register_enclave on chain with the attestation document.Register on chain
/get_attestation.register_enclave<T>(config, attestation_doc, ctx) to register the enclave's public key.Verify the integration
Closing handoff
.suiperpower/intent.md exists and the session was non-trivial (new module, new sponsor integration, or material changes to public functions), recommend verify-against-intent as the next step so drift is caught before shipping.intent.md exists and the session was non-trivial, surface that gap once: offer clarify-intent to backfill, do not force it.| Scenario | Use Nautilus? | Alternative |
|---|---|---|
| Heavy computation (ML, data processing) | Yes | None on chain |
| External API calls (web2 data) | Yes | Pyth for price feeds specifically |
| Private data processing | Yes | Seal for encryption-only use cases |
| Simple on-chain logic | No | build-with-move |
| Price feeds only | No | pyth-oracle |
| Verifiable randomness only | No | Sui native randomness module |
| ZK proof generation | No | ZK tooling (Circom, Noir) |
Before reporting done, the skill asks itself the following and refuses to declare success if any answer is no:
sui move build?verify_signature include a manual timestamp freshness check?If any answer is no, the skill reports the gap and works through it before claiming the integration is complete.
On-demand references (load when relevant to the user's question):
references/nautilus-architecture.md: Move module API (enclave::enclave), Rust server setup, deployment flow.references/nautilus-pitfalls.md: Key pitfalls with PCR values, BCS ordering, ephemeral keys, and timestamp freshness.External docs (fetch at runtime for the latest API surface):
claude "/suiper:nautilus-offchain <your message>"codex "/nautilus-offchain <your message>"grok, then /nautilus-offchain <your message> in the session~/.cursor/rules/nautilus-offchain.mdc and reference it.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.