Skip to content

ForgeToolRegistry (MRC-60 Phase 1)

Paid tool registry. Live on Arbitrum One and Base mainnet since 2026-05-09.

Source: registry-contracts/contracts/forge/ForgeToolRegistry.sol

Deployments

ChainAddress
Arbitrum One0xa08ca3…13D2
Base mainnet0x0c617b…45aC

Purpose

Discoverable on-chain index of monetizable tools. Registration costs 1 MOR per tool, transferred to the Hypnex treasury in the same register() transaction. Per-call revenue is settled separately via ForgeEscrow (Phase 3).

Functions

register

solidity
function register(
    bytes32 toolId,
    string calldata manifestUri,
    uint256 pricePerCall
) external;

Pulls 1 MOR via transferFrom from the caller, stores the tool record, emits ToolRegistered. The 1 MOR fee is admin-settable but historically immutable.

tools(bytes32 toolId)

solidity
function tools(bytes32 toolId) external view returns (ToolRecord memory);

Returns { owner, manifestUri, pricePerCall, registeredAt }.

updateManifest

solidity
function updateManifest(bytes32 toolId, string calldata newUri) external;

Owner-only. Price is immutable post-registration; manifest URI can be updated.

Events

solidity
event ToolRegistered(bytes32 indexed toolId, address indexed owner, uint256 pricePerCall);
event ManifestUpdated(bytes32 indexed toolId, string newUri);

Fee economics

  • 1 MOR per registration → Hypnex treasury
  • Treasury allocation policy: see TREASURY_POLICY.md (40–60% stables, 25–40% MOR, 10–15% ETH, ≥5% cold, ≥18mo runway floor)

SDK

See hypnex-forge for TypeScript and Python wrappers.

See also

Released under the MIT License.