Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cyotee avatar

Resupply Architecture

  • 1 installs
  • Updated February 9, 2026
  • cyotee/resupply-skill

Design and implement supply chain and resource management APIs.

About

Resupply-architecture provides backend patterns for supply chain and inventory systems. Developers use it to design scalable APIs for resource allocation and logistics.

  • Supply chain API patterns and best practices
  • Resource management and inventory architecture

Resupply Architecture by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #3,836 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Jul 8, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cyotee/resupply-skill --skill resupply-architecture

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
Last updatedFebruary 9, 2026
Repositorycyotee/resupply-skill

What it does

Design and implement supply chain and resource management APIs.

Files

SKILL.mdMarkdownGitHub ↗

Resupply Protocol Architecture

Resupply is a CDP-based (Collateralized Debt Position) stablecoin lending protocol enabling users to borrow reUSD stablecoins against ERC4626 vault tokens as collateral. The protocol integrates with Curve Lend, Frax Lend, Convex, and Yearn for yield-bearing collateral support.

Core Components

Core Contract (/src/dao/Core.sol)

The central authority contract managing system-wide configuration:

// Key state variables
address public feeReceiver;           // Protocol fee recipient
uint256 public epochLength;           // Default: 1 week (604800 seconds)
uint256 public startTime;             // Protocol start timestamp

// Operator management
mapping(address operator => bool isEnabled) public operatorPermissions;
mapping(address operator => IAuthHook hook) public authHooks;

Key functions:

  • execute(address target, bytes calldata data) - Execute calls through Core with operator permissions
  • setOperatorPermissions(address operator, bool enabled) - Enable/disable operators
  • setAuthHook(address operator, IAuthHook hook) - Set pre/post execution hooks

ResupplyRegistry (/src/protocol/ResupplyRegistry.sol)

Single source of truth for all protocol addresses and deployed pairs:

// Registry mappings
address[] public pairs;                          // All deployed lending pairs
mapping(address => bool) public isPair;          // Pair validation
mapping(bytes32 => address) public coreHandlers; // Named component lookup

// Core handler keys
bytes32 constant PAIR_DEPLOYER = keccak256("PAIR_DEPLOYER");
bytes32 constant LIQUIDATION_HANDLER = keccak256("LIQUIDATION_HANDLER");
bytes32 constant REDEMPTION_HANDLER = keccak256("REDEMPTION_HANDLER");
bytes32 constant REWARD_HANDLER = keccak256("REWARD_HANDLER");
bytes32 constant INSURANCE_POOL = keccak256("INSURANCE_POOL");

Registry access pattern:

address deployer = registry.coreHandlers(PAIR_DEPLOYER);
address[] memory allPairs = registry.getAllPairs();
bool valid = registry.isPair(pairAddress);

Operator Pattern

Operators are authorized contracts that can execute privileged actions through Core:

OperatorPurpose
GuardianEmergency pause, access control
TreasuryManagerTreasury fund management
BorrowLimitControllerDynamic borrow limit adjustments
PairAdderAdding new lending pairs
EmissionsControllerGovernance token emissions

Auth Hook Pattern:

interface IAuthHook {
    function canCall(address caller, address target, bytes4 selector) external view returns (bool);
    function preHook(address caller, address target, bytes calldata data) external;
    function postHook(address caller, address target, bytes calldata data, bytes calldata result) external;
}

Token Architecture

reUSD Stablecoin (/src/protocol/Stablecoin.sol)

The protocol's native stablecoin with controlled minting:

// LayerZero OFT for cross-chain support
contract Stablecoin is OFT {
    address public minter;  // Only minter can mint/burn

    function mint(address account, uint256 amount) external;
    function burn(address account, uint256 amount) external;
}

RSUP Governance Token (/src/dao/GovToken.sol)

Governance token for protocol voting and staking rewards:

contract GovToken is OFT {
    address public minter;
    uint256 public maxMintable;  // Capped supply
}

Precision Constants

All contracts use consistent precision values:

uint256 constant LTV_PRECISION = 1e5;        // Loan-to-value ratios (95% = 95_000)
uint256 constant EXCHANGE_PRECISION = 1e18;  // Exchange rates
uint256 constant RATE_PRECISION = 1e18;      // Interest rates per second
uint256 constant PAIR_DECIMALS = 1e18;       // Token decimals assumption

Epoch System

The protocol operates on weekly epochs for reward distribution and governance:

uint256 constant EPOCH_LENGTH = 604800;  // 1 week in seconds

function getEpoch() public view returns (uint256) {
    return (block.timestamp - startTime) / epochLength;
}

Integration Points

Resupply integrates with external protocols through pair deployers:

  • Curve Lend: CurveLendMinterFactory, CurveLendOperator
  • Frax Lend: Frax lending pair configurations
  • Convex: CRV/CVX reward routing
  • LayerZero: Cross-chain token bridging (OFT standard)

Additional Resources

For a complete list of all protocol contracts with paths, see `references/contracts.md`.

Related skills

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.