Skip to main content

Status & Roadmap

OctoGate is under active development. This page reflects the implementation state as of August 2026 based on the octogate README.

Account Permissioning — OZ Policy Builder

Implemented (Phase 1)

ComponentStatusNotes
Transaction recorder✅ ImplementedLive network and simulation modes. Simulation mode reduces parseConfidence; explicit confidenceOverride required.
Synthesizer (deterministic Mandate front-end)✅ ImplementedPure mapping from declarative spec to PolicyIR.
Synthesizer (inference Recording front-end)✅ ImplementedFail-closed; same input → byte-identical output.
OZ Accounts adapter — Path A✅ Implementedspending_limit, simple_threshold, weighted_threshold primitives.
OZ Accounts adapter — Path B warnings✅ ImplementedUncovered constructs surfaced in uncovered[], not silently dropped.
MCP server (@crediolabs/policy-builder-mcp)✅ ImplementedUnit-test-covered. AI agent integration via tool-use protocol.
CLI (apps/policy-builder-cli)✅ ImplementedScripted policy authoring.
Policy Builder Web UI✅ ImplementedBrowser UI on testnet (Freighter or local keypair).

Later phases

ComponentStatusNotes
Policy install on OZ smart account🔜 Later phaseCalls add_context_rule. Blocked on package-side mainnet pin.
On-chain verify🔜 Later phaseVerify policy against interpreter on-chain.
Simulate🔜 Later phaseDry-run a policy before install.
Rust interpreter (Path B predicate)🔜 Later phaseOn-chain predicate interpreter for constructs OZ built-ins cannot express (per-method scoping, oracle price bounds, etc.).

Deployed instances

Stellar testnet:

  • Policy interpreter: CDR4NLV22STCXFGZPNKDQTEANWLF7LZ6AJLY6B7CLJXKHDZGYJWIOKGP (rotation-refusal + oracle-threshold-basis build, default = mainnet oracle pin — fails closed on testnet oracle reads)
  • OZ built-ins: spending_limit at CDXDHCLOIZDLO63RLLU2Z6ICKZSA3MOYM3AYHU3LEXCGQSMXCMNDDEOF, simple_threshold at CBD7IHUH7QARZBIOUVNHWUWKA5FYQG2C67IORRYZG643Q4CIIQKX5IPG, weighted_threshold at CDXTGMGYJIE2XWWWQPYPWPFZ5D356XFAHDNWBQ3VT6DLP72KMSIU3SV4
  • Reflector Pulse oracle (primary): CAVLP5DH2GJPZMVO7IJY4CVOD5MWEFTJFVPD2YY2FQXOQHRGHK4D6HLP

Stellar mainnet (unaudited):

  • Policy interpreter: CALZAMUPREIRY4TULBEXIK77AUTOEJG63XLCPUWEHHQDOVK6ZVVS7VQ2unaudited, deployed 2026-08-04
  • OZ built-ins: spending_limit at CBRQBB2BQ3BJKCSLQGPB7LAV7MCFEWRVUPV7DYCAW5DRH4D3KUW6LYJV, simple_threshold at CCSOGHRJS3EBGVHVZSNOGMGV7SAVOUSCVSGDWOT25HBTNN65OYEQNLJJ, weighted_threshold at CAU7EHV6N4VCCVVRDFPT4GHFFO6PPF2JHFVLKXRFFNIAXKTHZYQ75YYC
  • Reflector Pulse oracle (primary): CALI2BYU2JE6WVRUFYTS6MSBNEHGJ35P4AVCZYF3B6QOE3QKOB2PLE6M

The mainnet interpreter is unaudited and get_interpreter_info still refuses network: 'mainnet'. The package-side mainnet pin has not landed due to an unrotated NPM_TOKEN.


Venue Permissioning Gate

Implemented

ComponentStatusNotes
venue-wrapper✅ ImplementedRestricted-asset wrapper with transfer gate.
venue-market✅ ImplementedFacade between wrapper and Blend v2 pool.
venue-demo-web✅ ImplementedBrowser demo on testnet.
Blend v2 integration✅ ImplementedUnmodified Blend pool; wrapper provides the permissioned reserve.

Not yet on mainnet

The venue permissioning stack has not been deployed to Stellar mainnet. packages/test-blend-pool and packages/test-oracle are testnet-only verification infrastructure.


Known limitations

  1. Mainnet interpreter unaudited — the on-chain Rust interpreter deployed to mainnet (2026-08-04) has not completed its security audit. Do not use with significant funds.
  2. Mainnet package pin missing@crediolabs/policy-synth does not yet carry the mainnet interpreter address; allowUnpinnedInterpreter: true is required.
  3. Testnet oracle fails closed — the default interpreter build pins the mainnet oracle feeds; on testnet, oracle-bounded policies deny because the feeds do not exist there. The oracle test suite runs against a separate --features testnet build.
  4. Venue gate not on mainnet — the venue-wrapper + venue-market stack is testnet-only as of August 2026.
  5. Simulation mode reduced confidenceparseConfidence is lower in simulation mode due to absent raw events; explicit confidenceOverride required to pass the default gate.