Cauldron/docs/cauldron/knowledge-base/summon/index.html
bch_qp3hvzy09lzcm46qm4cd 66e0acc0be snapshot: docs.riftenlabs.com/cauldron/ (28 pages) - author: Riften Labs
Backup of Cauldron docs at snapshot time. Canonical source of truth:
  https://docs.riftenlabs.com/cauldron/

Includes: whitepaper, liquidity/swap/yield/wallets, developer resources,
knowledge base, and the full API section (bcmr, broadcast, cauldron,
contract-subscribe, ido, moria_v11, oracle, root, tokenbch, tokentoken).
Supporting CSS/JS bundle preserved so pages render offline.
2026-09-02 04:05:04 +02:00

3281 lines
No EOL
50 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Documentation for Riften Labs products">
<meta name="author" content="Riften Labs">
<link rel="canonical" href="https://docs.riftenlabs.com/cauldron/knowledge-base/summon/">
<link rel="prev" href="../pending/">
<link rel="next" href="../token-rating/">
<link rel="icon" href="../../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
<title>Pool Announcement (SUMMON) - Riften Labs Documentation</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.ec1eaa64.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/custom.css">
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#pool-announcement-summon" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="Riften Labs Documentation" class="md-header__button md-logo" aria-label="Riften Labs Documentation" data-md-component="logo">
<img src="https://static.wixstatic.com/media/ae85be_a9f280427dbf44b7bcc1a4bfb232c96f~mv2.png/v1/fill/w_30,h_30,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Riften_Labs_Logo_Transparent_edited.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Riften Labs Documentation
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Pool Announcement (SUMMON)
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="Riften Labs Documentation" class="md-nav__button md-logo" aria-label="Riften Labs Documentation" data-md-component="logo">
<img src="https://static.wixstatic.com/media/ae85be_a9f280427dbf44b7bcc1a4bfb232c96f~mv2.png/v1/fill/w_30,h_30,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Riften_Labs_Logo_Transparent_edited.png" alt="logo">
</a>
Riften Labs Documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Riften Labs Documentation
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
RiftenLabs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
RiftenLabs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../RiftenLabs/contributor-agreement/" class="md-nav__link">
<span class="md-ellipsis">
Riften Labs Contributor Agreement
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../RiftenLabs/media/" class="md-nav__link">
<span class="md-ellipsis">
Media
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../RiftenLabs/mediapack/" class="md-nav__link">
<span class="md-ellipsis">
Media Pack
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../RiftenLabs/opensource/" class="md-nav__link">
<span class="md-ellipsis">
Open Source
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Cauldron
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Cauldron
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../" class="md-nav__link">
<span class="md-ellipsis">
Cauldron DEX
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../aapy/" class="md-nav__link">
<span class="md-ellipsis">
Aggregated APY (AAPY)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../claim/" class="md-nav__link">
<span class="md-ellipsis">
Token Verification &amp; Token Claim
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../developer-resources/" class="md-nav__link">
<span class="md-ellipsis">
Developer Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../liquidity/" class="md-nav__link">
<span class="md-ellipsis">
Liquidity Pools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sock/" class="md-nav__link">
<span class="md-ellipsis">
SOCK
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../swap/" class="md-nav__link">
<span class="md-ellipsis">
Trade / Swap
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../usecases/" class="md-nav__link">
<span class="md-ellipsis">
Other Use Cases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../wallets/" class="md-nav__link">
<span class="md-ellipsis">
Wallets
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../whitepaper/" class="md-nav__link">
<span class="md-ellipsis">
Whitepaper
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../yield/" class="md-nav__link">
<span class="md-ellipsis">
Pool Yield
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_12" >
<label class="md-nav__link" for="__nav_3_12" id="__nav_3_12_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_12">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../API/" class="md-nav__link">
<span class="md-ellipsis">
Riften Labs Indexer API Documentation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/bcmr/" class="md-nav__link">
<span class="md-ellipsis">
/bcmr Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/broadcast/" class="md-nav__link">
<span class="md-ellipsis">
Transaction Broadcast API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/cauldron/" class="md-nav__link">
<span class="md-ellipsis">
/cauldron/ Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/contract-subscribe/" class="md-nav__link">
<span class="md-ellipsis">
Contract subscribe
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/ido/" class="md-nav__link">
<span class="md-ellipsis">
/ido Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/moria_v11/" class="md-nav__link">
<span class="md-ellipsis">
/moria/v11 Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/oracle/" class="md-nav__link">
<span class="md-ellipsis">
/oracle Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/root/" class="md-nav__link">
<span class="md-ellipsis">
/ Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/tokenbch/" class="md-nav__link">
<span class="md-ellipsis">
/tokenbch Endpoints
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../API/tokentoken/" class="md-nav__link">
<span class="md-ellipsis">
/tokentoken Endpoints
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_13" checked>
<label class="md-nav__link" for="__nav_3_13" id="__nav_3_13_label" tabindex="0">
<span class="md-ellipsis">
Knowledge base
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_13_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_13">
<span class="md-nav__icon md-icon"></span>
Knowledge base
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" class="md-nav__link">
<span class="md-ellipsis">
Knowledge Base
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hdwallet/" class="md-nav__link">
<span class="md-ellipsis">
HD Wallet &amp; Derivation Paths
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../pending/" class="md-nav__link">
<span class="md-ellipsis">
Pending Transactions
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Pool Announcement (SUMMON)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Pool Announcement (SUMMON)
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#op_return-format" class="md-nav__link">
<span class="md-ellipsis">
OP_RETURN Format
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#verifying-a-cauldron-pool" class="md-nav__link">
<span class="md-ellipsis">
Verifying a Cauldron Pool
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#transaction-structure" class="md-nav__link">
<span class="md-ellipsis">
Transaction Structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#how-indexers-use-it" class="md-nav__link">
<span class="md-ellipsis">
How Indexers Use It
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../token-rating/" class="md-nav__link">
<span class="md-ellipsis">
Token Rating
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../txordering/" class="md-nav__link">
<span class="md-ellipsis">
Ordering of trades on Cauldron
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Delphi
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Delphi
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../delphi/" class="md-nav__link">
<span class="md-ellipsis">
Delphi Oracle
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Moria
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Moria
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../moria/" class="md-nav__link">
<span class="md-ellipsis">
Moria Protocol
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/borrowing/" class="md-nav__link">
<span class="md-ellipsis">
Borrowing, redeeming and liquidations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/developer-resources/" class="md-nav__link">
<span class="md-ellipsis">
Developer Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/general/" class="md-nav__link">
<span class="md-ellipsis">
General
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/roadmap/" class="md-nav__link">
<span class="md-ellipsis">
Roadmap
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_6" >
<label class="md-nav__link" for="__nav_5_6" id="__nav_5_6_label" tabindex="0">
<span class="md-ellipsis">
FAQ
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_6">
<span class="md-nav__icon md-icon"></span>
FAQ
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../moria/FAQ/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/FAQ/liquidation-incentives/" class="md-nav__link">
<span class="md-ellipsis">
Liquidation Incentives
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/FAQ/redeem-bch-balance/" class="md-nav__link">
<span class="md-ellipsis">
Where is my BCH after redeeming?
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_7" >
<label class="md-nav__link" for="__nav_5_7" id="__nav_5_7_label" tabindex="0">
<span class="md-ellipsis">
Technical
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_7">
<span class="md-nav__icon md-icon"></span>
Technical
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../moria/technical/bpsoracle/" class="md-nav__link">
<span class="md-ellipsis">
Basis Point Oracle
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/technical/delphi-v1/" class="md-nav__link">
<span class="md-ellipsis">
Delphi Oracle (v1)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/technical/deployment/" class="md-nav__link">
<span class="md-ellipsis">
Technical Details
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/technical/wainterest/" class="md-nav__link">
<span class="md-ellipsis">
Weighted Average Interest Rate
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_8" >
<label class="md-nav__link" for="__nav_5_8" id="__nav_5_8_label" tabindex="0">
<span class="md-ellipsis">
V0
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_8">
<span class="md-nav__icon md-icon"></span>
V0
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../moria/v0/" class="md-nav__link">
<span class="md-ellipsis">
Moria v0
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../moria/v0/testrun/" class="md-nav__link">
<span class="md-ellipsis">
Moria Protocol v0 Test Run #1 Overview
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Router
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Router
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../router/" class="md-nav__link">
<span class="md-ellipsis">
Cauldron Router API
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
<span class="md-ellipsis">
Api
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_2">
<span class="md-nav__icon md-icon"></span>
Api
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../router/api/route.quote/" class="md-nav__link">
<span class="md-ellipsis">
route.quote
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../router/api/route.subscribe/" class="md-nav__link">
<span class="md-ellipsis">
route.subscribe
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../router/api/tx.build/" class="md-nav__link">
<span class="md-ellipsis">
tx.build
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../router/api/tx.subscribe/" class="md-nav__link">
<span class="md-ellipsis">
tx.subscribe
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_3" >
<label class="md-nav__link" for="__nav_6_3" id="__nav_6_3_label" tabindex="0">
<span class="md-ellipsis">
Protocol
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_3">
<span class="md-nav__icon md-icon"></span>
Protocol
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../router/protocol/errors/" class="md-nav__link">
<span class="md-ellipsis">
Error Codes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../router/protocol/overview/" class="md-nav__link">
<span class="md-ellipsis">
Protocol Overview
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_4" >
<label class="md-nav__link" for="__nav_6_4" id="__nav_6_4_label" tabindex="0">
<span class="md-ellipsis">
Schemas
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_4">
<span class="md-nav__icon md-icon"></span>
Schemas
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../router/schemas/" class="md-nav__link">
<span class="md-ellipsis">
JSON Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Wizardconnect
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Wizardconnect
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../wizardconnect/" class="md-nav__link">
<span class="md-ellipsis">
WizardConnect
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/connection-uri/" class="md-nav__link">
<span class="md-ellipsis">
Connection URI and key exchange
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/dapp/" class="md-nav__link">
<span class="md-ellipsis">
Dapp integration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/extensions/" class="md-nav__link">
<span class="md-ellipsis">
Extensions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/protocol/" class="md-nav__link">
<span class="md-ellipsis">
Protocol
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/pubkey-derivation/" class="md-nav__link">
<span class="md-ellipsis">
xpub delivery and pubkey derivation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/react/" class="md-nav__link">
<span class="md-ellipsis">
React integration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/serialization/" class="md-nav__link">
<span class="md-ellipsis">
Relay serialization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/transport/" class="md-nav__link">
<span class="md-ellipsis">
Relay transport
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/wallet/" class="md-nav__link">
<span class="md-ellipsis">
Wallet integration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../wizardconnect/xpub-sharing/" class="md-nav__link">
<span class="md-ellipsis">
xpub sharing: why it's safe and why we do it
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#op_return-format" class="md-nav__link">
<span class="md-ellipsis">
OP_RETURN Format
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#verifying-a-cauldron-pool" class="md-nav__link">
<span class="md-ellipsis">
Verifying a Cauldron Pool
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#transaction-structure" class="md-nav__link">
<span class="md-ellipsis">
Transaction Structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#how-indexers-use-it" class="md-nav__link">
<span class="md-ellipsis">
How Indexers Use It
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<nav class="md-path" aria-label="Navigation" >
<ol class="md-path__list">
<li class="md-path__item">
<a href="../../.." class="md-path__link">
<span class="md-ellipsis">
Riften Labs Documentation
</span>
</a>
</li>
<li class="md-path__item">
<a href="../../" class="md-path__link">
<span class="md-ellipsis">
Cauldron
</span>
</a>
</li>
<li class="md-path__item">
<a href="../" class="md-path__link">
<span class="md-ellipsis">
Knowledge base
</span>
</a>
</li>
</ol>
</nav>
<article class="md-content__inner md-typeset">
<h1 id="pool-announcement-summon">Pool Announcement (SUMMON)</h1>
<p>When a new liquidity pool is created on Cauldron, the transaction includes a special <code>OP_RETURN</code> output containing the marker <code>SUMMON</code> followed by the owner's public key hash (PKH).</p>
<p>Because Cauldron pools are P2SH32 contracts, the actual contract bytecode is hidden until the pool is first spent. The SUMMON announcement solves this by providing the owner PKH, which allows indexers to reconstruct the expected contract, hash it, and verify that the P2SH32 output is a valid Cauldron pool.</p>
<h2 id="op_return-format">OP_RETURN Format</h2>
<p>The SUMMON output is 29 bytes with the following structure:</p>
<table>
<thead>
<tr>
<th>Byte(s)</th>
<th>Hex</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td><code>6a</code></td>
<td><code>OP_RETURN</code></td>
</tr>
<tr>
<td>2</td>
<td><code>06</code></td>
<td>Push 6 bytes</td>
</tr>
<tr>
<td>3-8</td>
<td><code>53 55 4d 4d 4f 4e</code></td>
<td>ASCII <code>SUMMON</code></td>
</tr>
<tr>
<td>9</td>
<td><code>14</code></td>
<td>Push 20 bytes</td>
</tr>
<tr>
<td>10-29</td>
<td></td>
<td>Owner PKH (20 bytes)</td>
</tr>
</tbody>
</table>
<p>Example scriptPubKey in hex:</p>
<div class="highlight"><pre><span></span><code>6a0653554d4d4f4e14b034dc7821b2b25c38b5825cdc4af9e6ace02be7
</code></pre></div>
<h2 id="verifying-a-cauldron-pool">Verifying a Cauldron Pool</h2>
<p>The Cauldron contract is a fixed template with a 20-byte PKH placeholder. Given the PKH from the SUMMON output, an indexer can verify a P2SH32 output is a Cauldron pool:</p>
<ol>
<li>Insert the PKH into the contract template to get the full redeemscript</li>
<li>Compute the <code>SHA256d</code> hash of the redeemscript</li>
<li>Check if any P2SH32 output in the transaction matches the resulting hash</li>
</ol>
<p>If the P2SH32 output matches and contains tokens, it is a valid Cauldron pool owned by the given PKH.</p>
<h2 id="transaction-structure">Transaction Structure</h2>
<p>A pool creation transaction that includes the SUMMON announcement looks like this:</p>
<pre class="mermaid"><code>flowchart LR
UserBCHInput --&gt; CreateTransaction --&gt; CauldronOutput["Cauldron P2SH32 Output"]
UserTokenInput --&gt; CreateTransaction --&gt; SUMMONOutput["OP_RETURN SUMMON + PKH"]
CreateTransaction --&gt; UserBCHChangeOutput</code></pre>
<p>The <code>OP_RETURN</code> output is <strong>unspendable</strong>. The pool's token ID and initial balances are in the Cauldron P2SH32 output, while the <code>OP_RETURN</code> provides the PKH needed to verify it.</p>
<h2 id="how-indexers-use-it">How Indexers Use It</h2>
<p>The <a href="https://gitlab.com/riftenlabs/riftenlabs-indexer">Riften Labs Indexer</a> monitors the mempool for transactions matching the SUMMON scriptPubKey pattern. When found, the indexer fetches the full transaction, extracts the PKH from the SUMMON output, and uses it to verify and parse the Cauldron P2SH32 output.</p>
<p>This means the indexer can discover new pools as soon as they appear in the mempool, before they are confirmed in a block.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../pending/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Pending Transactions">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
Pending Transactions
</div>
</div>
</a>
<a href="../token-rating/" class="md-footer__link md-footer__link--next" aria-label="Next: Token Rating">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Token Rating
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
</div>
<div class="md-social">
<a href="https://x.com/riftenlabs" target="_blank" rel="noopener" title="Riften Labs on X" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z"/></svg>
</a>
<a href="https://x.com/moriamoney" target="_blank" rel="noopener" title="Moria Money on X" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z"/></svg>
</a>
<a href="https://x.com/cauldronswap" target="_blank" rel="noopener" title="Cauldron Swap on X" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "../../..", "features": ["navigation.footer", "navigation.path"], "search": "../../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../../assets/javascripts/bundle.d7400e89.min.js"></script>
<script src="../../../javascripts/mathjax.js"></script>
<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</body>
</html>