> ## Documentation Index
> Fetch the complete documentation index at: https://docs.railnet.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> The connectivity layer for DeFi & RWAs

export const HeroFlow = () => {
  const CSS = `
    .hf-bg{fill:#F8F8F8;stroke:#E5E7EB;stroke-width:0;rx:4;ry:4}
    .dark .hf-bg{fill:#141414;stroke:#333}
    .hf-text{fill:#374151;font-family:"Inter Tight","Inter",system-ui,sans-serif}
    .dark .hf-text{fill:#D1D5DB}
    .hf-text-m{fill:#6B7280;font-family:"Inter Tight","Inter",system-ui,sans-serif}
    .dark .hf-text-m{fill:#9CA3AF}
    .hf-h{fill:#111827;font-family:"Inter Tight","Inter",system-ui,sans-serif}
    .dark .hf-h{fill:#E5E7EB}
    .hf-yield,.hf-alloc,.hf-adv,.hf-pa,.hf-px,.hf-py{rx:2;ry:2}
    .hf-yield{fill:#fff;stroke:#A7A8A8;stroke-width:0;stroke-dasharray:6 3}
    .dark .hf-yield{fill:#1F2937;stroke:#4B5563}
    .hf-alloc{fill:#D4E8E0;stroke:#458778;stroke-width:0}
    .dark .hf-alloc{fill:#1E3A2F;stroke:#5AA08E}
    .hf-adv{fill:#CCE5E6;stroke:#007D82;stroke-width:0}
    .dark .hf-adv{fill:#1A3535;stroke:#20B9BF}
    .hf-ba{fill:#2D4B44;font-family:"Inter Tight","Inter",system-ui,sans-serif}
    .dark .hf-ba{fill:#6BB5A0}
    .hf-bb{fill:#007D82;font-family:"Inter Tight","Inter",system-ui,sans-serif}
    .dark .hf-bb{fill:#20B9BF}
    .hf-pa{fill:#FFE4D2;stroke:#FD5100;stroke-width:0}
    .dark .hf-pa{fill:#3D2510;stroke:#FF9465}
    .hf-px{fill:#CDF5E8;stroke:#00CD9E;stroke-width:0}
    .dark .hf-px{fill:#1A3D2E;stroke:#00CD9E}
    .hf-py{fill:#D4EDEE;stroke:#20B9BF;stroke-width:0}
    .dark .hf-py{fill:#1A3A3B;stroke:#20B9BF}
    .hf-conn{stroke:#787878;fill:none;stroke-width:1.5;color:#787878}
    .dark .hf-conn{stroke:#787878;color:#787878}
    .hf-conn-dot{stroke:#787878;fill:none;stroke-width:1.5;color:#787878;stroke-dasharray:4 3}
    .dark .hf-conn-dot{stroke:#787878;color:#787878}

    @keyframes hf-in{from{opacity:0}to{opacity:1}}
    @keyframes hf-show{from{opacity:0;pointer-events:none}to{opacity:1;pointer-events:auto}}

    .hf-g1,.hf-g2,.hf-g3{transition:opacity 300ms ease}
    .hf-g1{animation:hf-in 500ms ease-in 0ms both}
    .hf-g2{animation:hf-in 500ms ease-in 700ms both}
    .hf-g3{animation:hf-in 500ms ease-in 1400ms both}

    .hf-stepper{display:flex;justify-content:center;gap:8px;margin-top:12px;font-family:"Inter Tight","Inter",sans-serif;animation:hf-show 300ms ease-in 2100ms both}

    .hf-wrap>input[type="radio"]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

    .hf-stepper label{padding:6px 18px;border:1px solid #DADADA;color:#6B7280;font-size:12px;font-weight:600;cursor:pointer;transition:all 200ms ease;text-align:center;line-height:1.4}
    .hf-stepper label:hover{border-color:#A7A8A8;color:#374151}
    .hf-stepper label small{display:block;font-size:10px;font-weight:400;opacity:0.65}
    .hf-stepper label[for="hf-all"]{border:none;font-weight:400;color:#A7A8A8;padding:6px 8px;font-size:11px}
    .hf-stepper label[for="hf-all"]:hover{color:#6B7280}

    #hf-s1:checked~.hf-svg .hf-g1{opacity:1!important;animation:none!important}
    #hf-s1:checked~.hf-svg .hf-g2,#hf-s1:checked~.hf-svg .hf-g3{opacity:0.12!important;animation:none!important}
    #hf-s2:checked~.hf-svg .hf-g1,#hf-s2:checked~.hf-svg .hf-g2{opacity:1!important;animation:none!important}
    #hf-s2:checked~.hf-svg .hf-g3{opacity:0.12!important;animation:none!important}
    #hf-s3:checked~.hf-svg .hf-g1,#hf-s3:checked~.hf-svg .hf-g2,#hf-s3:checked~.hf-svg .hf-g3{opacity:1!important;animation:none!important}
    #hf-all:checked~.hf-svg .hf-g1,#hf-all:checked~.hf-svg .hf-g2,#hf-all:checked~.hf-svg .hf-g3{opacity:1!important;animation:none!important}

    #hf-s1:checked~.hf-stepper,#hf-s2:checked~.hf-stepper,#hf-s3:checked~.hf-stepper,#hf-all:checked~.hf-stepper{opacity:1!important;pointer-events:auto!important;animation:none!important}

    #hf-s1:checked~.hf-stepper label[for="hf-s1"],#hf-s2:checked~.hf-stepper label[for="hf-s2"],#hf-s3:checked~.hf-stepper label[for="hf-s3"]{background:#458778;border-color:#458778;color:#fff}

    .dark .hf-stepper label{border-color:#4B5563;color:#9CA3AF}
    .dark .hf-stepper label:hover{border-color:#6B7280;color:#D1D5DB}
    .dark #hf-s1:checked~.hf-stepper label[for="hf-s1"],.dark #hf-s2:checked~.hf-stepper label[for="hf-s2"],.dark #hf-s3:checked~.hf-stepper label[for="hf-s3"]{background:#5AA08E;border-color:#5AA08E;color:#fff}
    .dark .hf-stepper label[for="hf-all"]{color:#6B7280}
    .dark .hf-stepper label[for="hf-all"]:hover{color:#9CA3AF}
  `;
  const bz = (x1, y1, x2, y2) => {
    const dx = x2 - x1;
    const dy = y2 - y1;
    return `M${x1},${y1} C${x1 + dx * 0.5},${y1 + dy * 0.35} ${x2 - dx * 0.5},${y2 - dy * 0.35} ${x2},${y2}`;
  };
  const srcToStr = [[140, 57, 205, 63], [140, 109, 205, 80], [140, 232, 205, 235], [140, 282, 205, 250]];
  const strToCon = [[405, 58, 475, 52], [405, 73, 475, 100], [405, 88, 475, 150], [405, 222, 475, 232]];
  const directArr = [[140, 282, 475, 280]];
  const conToPlat = [[660, 52, 740, 55], [660, 100, 740, 95], [660, 150, 740, 150], [660, 232, 740, 240], [660, 280, 740, 270]];
  return <div className="not-prose w-full my-6 overflow-x-auto hf-wrap" style={{
    padding: '2px',
    position: 'relative'
  }}>
      <style>{CSS}</style>
      <input type="radio" name="hf" id="hf-all" />
      <input type="radio" name="hf" id="hf-s1" />
      <input type="radio" name="hf" id="hf-s2" />
      <input type="radio" name="hf" id="hf-s3" />
      <svg className="hf-svg" viewBox="0 -15 960 345" style={{
    width: '100%',
    height: 'auto',
    minWidth: '600px',
    display: 'block'
  }} role="img" aria-label="Railnet architecture diagram">
        <defs>
          <marker id="hf-arr" viewBox="0 0 10 7" refX="9" refY="3.5" markerWidth="8" markerHeight="6" orient="auto">
            <polygon points="0 0, 10 3.5, 0 7" fill="currentColor" />
          </marker>
        </defs>
        <rect x="0" y="-15" width="960" height="345" className="hf-bg" />

        <g className="hf-g1">
          <text x="10" y="18" textAnchor="start" className="hf-h" fontSize="13" fontWeight="600">Yield Sources</text>
          <rect x="10" y="40" width="130" height="34" className="hf-yield" />
          <text x="75" y="57" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="12" fontWeight="500">Lending A</text>
          <rect x="10" y="92" width="130" height="34" className="hf-yield" />
          <text x="75" y="109" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="12" fontWeight="500">RWA X</text>
          <rect x="10" y="215" width="130" height="34" className="hf-yield" />
          <text x="75" y="232" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="12" fontWeight="500">RWA Y</text>
          <rect x="10" y="265" width="130" height="34" className="hf-yield" />
          <text x="75" y="282" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="12" fontWeight="500">Lending B</text>
        </g>

        <g className="hf-g2">
          <text x="205" y="18" textAnchor="start" className="hf-h" fontSize="13" fontWeight="600">Manage Strategy</text>
          {srcToStr.map(([x1, y1, x2, y2], i) => <path key={'s' + i} d={bz(x1, y1, x2, y2)} className="hf-conn" markerEnd="url(#hf-arr)" />)}
          <path d={bz(140, 109, 205, 215)} className="hf-conn" markerEnd="url(#hf-arr)" />
          <text x="210" y="39" className="hf-ba" fontSize="11" fontStyle="italic" fontWeight="600">Allocation Strategy</text>
          <rect x="205" y="44" width="200" height="58" className="hf-alloc" />
          <text x="305" y="67" textAnchor="middle" className="hf-text" fontSize="12" fontWeight="600">Alpha Portfolio - Mid Risk</text>
          <text x="305" y="85" textAnchor="middle" className="hf-text" fontSize="10.5" opacity="0.6">Manager A fees</text>
          <text x="210" y="199" className="hf-bb" fontSize="11" fontStyle="italic" fontWeight="600">Advanced Strategy</text>
          <rect x="205" y="205" width="200" height="58" className="hf-adv" />
          <text x="305" y="228" textAnchor="middle" className="hf-text" fontSize="12" fontWeight="600">RWA Looping Strategy</text>
          <text x="305" y="246" textAnchor="middle" className="hf-text" fontSize="10.5" opacity="0.6">Manager B fees</text>
          <line x1="305" y1="205" x2="305" y2="102" className="hf-conn" markerEnd="url(#hf-arr)" />
        </g>

        <g className="hf-g3">
          <text x="475" y="18" textAnchor="start" className="hf-h" fontSize="13" fontWeight="600">Distribute Yield</text>
          {strToCon.map(([x1, y1, x2, y2], i) => <path key={'c' + i} d={bz(x1, y1, x2, y2)} className="hf-conn-dot" markerEnd="url(#hf-arr)" />)}
          {directArr.map(([x1, y1, x2, y2], i) => <path key={'d' + i} d={bz(x1, y1, x2, y2)} className="hf-conn-dot" markerEnd="url(#hf-arr)" />)}
          <rect x="475" y="32" width="185" height="40" className="hf-pa" />
          <text x="567" y="47" textAnchor="middle" className="hf-text" fontSize="11.5" fontWeight="600">aAlphaUSDC</text>
          <text x="567" y="63" textAnchor="middle" className="hf-text" fontSize="10" opacity="0.6">Platform A fees low</text>
          <rect x="475" y="80" width="185" height="40" className="hf-pa" />
          <text x="567" y="95" textAnchor="middle" className="hf-text" fontSize="11.5" fontWeight="600">aAlphaUSDC</text>
          <text x="567" y="111" textAnchor="middle" className="hf-text" fontSize="10" opacity="0.6">Platform A fees high</text>
          <rect x="475" y="130" width="185" height="40" className="hf-px" />
          <text x="567" y="145" textAnchor="middle" className="hf-text" fontSize="11.5" fontWeight="600">xAlphaUSDC</text>
          <text x="567" y="161" textAnchor="middle" className="hf-text" fontSize="10" opacity="0.6">Platform X fees</text>
          <rect x="475" y="212" width="185" height="40" className="hf-py" />
          <text x="567" y="227" textAnchor="middle" className="hf-text" fontSize="11.5" fontWeight="600">cLoopingUSDC</text>
          <text x="567" y="243" textAnchor="middle" className="hf-text" fontSize="10" opacity="0.6">Platform C fees</text>
          <rect x="475" y="260" width="185" height="40" className="hf-py" />
          <text x="567" y="275" textAnchor="middle" className="hf-text" fontSize="11.5" fontWeight="600">cLendingwETH</text>
          <text x="567" y="292" textAnchor="middle" className="hf-text" fontSize="10" opacity="0.6">Platform C fees</text>
          <text x="700" y="42" textAnchor="middle" className="hf-text-m" fontSize="10" fontWeight="500">B2B Offering</text>
          <text x="700" y="88" textAnchor="middle" className="hf-text-m" fontSize="10" fontWeight="500">B2C Offering</text>
          {conToPlat.map(([x1, y1, x2, y2], i) => <path key={'p' + i} d={bz(x1, y1, x2, y2)} className="hf-conn" markerEnd="url(#hf-arr)" />)}
          <rect x="740" y="30" width="160" height="95" className="hf-pa" />
          <text x="820" y="77" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="13" fontWeight="600">Platform A</text>
          <rect x="740" y="130" width="160" height="40" className="hf-px" />
          <text x="820" y="150" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="13" fontWeight="600">Platform X</text>
          <rect x="740" y="208" width="160" height="96" className="hf-py" />
          <text x="820" y="256" textAnchor="middle" dominantBaseline="middle" className="hf-text" fontSize="13" fontWeight="600">Platform Y</text>
        </g>
      </svg>
      <div className="hf-stepper">
        <label htmlFor="hf-s1">Connect<br /><small>Yield sources</small></label>
        <label htmlFor="hf-s2">Manage<br /><small>Strategies</small></label>
        <label htmlFor="hf-s3">Distribute<br /><small>Yield</small></label>
        <label htmlFor="hf-all">Show all</label>
      </div>
    </div>;
};

Railnet is an orchestration layer for asset managers & earn Platforms to build composable earn offering across any yield source and distribute them anywhere.

Managing yield across multiple protocols generally means building custom infrastructure for every integration — separate accounting, permissions, and settlement logic. Railnet replaces all of that with three composable building blocks that connect yield sources, strategies, and distribution channels.

<HeroFlow />

* **Yield Sources** — Protocols connect once via a standard adapter. One integration makes them composable with every strategy on the network.
* **Strategies** — Asset managers compose yield sources into managed products with real-time accounting and on-chain guardrails. Both allocation-based and advanced standalone strategies.
* **Conduits** — Platforms deploy branded entry points with custom fees, compliance, and access control. One strategy can serve multiple platforms with different configurations.

## Get started

<CardGroup cols={2}>
  <Card title="Platforms" icon="store" href="/conduits/index">
    You want to add yield to your product. Deploy a **Conduit** — a branded yield experience with your fees, compliance rules, and access to every strategy on the network.
  </Card>

  <Card title="Asset managers" icon="chess-board" href="/strategies/index">
    You want to build yield strategies. Start with an **Advanced Strategy** for standalone protocol execution, or compose multiple sources into an **Allocation Strategy** — with automated routing, real-time NAV, and on-chain guardrails.
  </Card>
</CardGroup>

<Card title="See it in action" icon="cubes" href="/overview/application-example">
  A neobank wants to offer 5% USDC yield. Walk through how every piece connects — from yield sources to strategy to shipped product.
</Card>

***

<CardGroup cols={2}>
  <Card title="DeFi protocols & RWA issuers" icon="plug" href="/developers/vehicles/index">
    Build a **Yield Source** adapter — one STEAM integration makes your protocol composable with every strategy and platform on the network.
  </Card>

  <Card title="Developers" icon="code" href="/developers/index">
    API, smart contract reference, yield source integration, and protocol terminology.
  </Card>
</CardGroup>

Every new yield source, strategy, and conduit amplifies the value for everyone else on the network. [See how it works →](/overview/how-it-works)
