Autopilotは、他のボールトに預け入れるボールトだ。ボールトの上にボールトを重ねる仕組みは、素朴に実装すると、手数料、タイミング、資本効率のすべてを壊してしまう。その一つひとつを直すために実際に必要だったことを、ここで解説する。

「一度の預け入れで複数の戦略に配分し、状況の変化に応じてリバランスする。」これがAutopilotの謳い文句のすべてであり、エレガントでシンプルに聞こえる。だが、エレガントなプロダクトは、その裏にあるエンジニアリングのコストを覆い隠してしまうものだ。
外からは最も見えにくい部分がここにある。Autopilot自体もひとつのボールトであり、他のボールトに預け入れるボールトなのだ。ボールトの上にボールトを重ねる仕組みは、素朴に実装すると、既定で3つのことを壊してしまう。手数料が積み重なる。人間向けに作られたタイミングのルールが、アロケーターの動きを縛ってしまう。そして、戦略間で資本を移動させている間、その資本は宙ぶらりんのまま働かなくなる。
私たちは、このひとつひとつを解決するためにプログラムをアップグレードした。実際に何が必要だったかを、ここで説明する。
ボールトを素朴に重ねると、ユーザーは二重に手数料を支払うことになる。各戦略ボールトの内側で一度、そしてその上のレイヤーでもう一度だ。多くのプロダクトは、リベートや会計上の調整でこれを「解決」しようとする——それは、二重に取った分を後で返すという方針上の約束にすぎない。
私たちは、スタックのさらに下の層に手を入れた。手数料の条件は、プログラムのレベルで預け入れ者ごとに設定される。戦略ボールト側は、Autopilotのポジションに対する手数料をちょうどゼロにしており、この構造のどこを見ても存在する手数料は、Autopilotのレイヤーにあるものだけだ——ページに表示されている、あの手数料だけである。

二重課金は、方針によって「回避」されているわけではない。下位のレイヤーが、そもそもそれを課すことがないだけだ。
そもそもなぜ手数料の状態が預け入れ者ごとに異なりうるのか、と思うかもしれない。それはすでに預け入れ者ごとに記録されていたからだ——個別のハイウォーターマークの仕組みと同じである。これは、私たちがすでに構築を選んでいた、拡張された仕組みだ。
戦略ボールトにはロックアップ期間とクールダウン期間があり、これらは人間の預け入れ者向けに調整されている。これらは保護機能であり、しかも優れたものだ。
しかし、アロケーターは人間の預け入れ者ではない。クールダウンが明けるのを待たなければならないアロケーターは、状況の変化に反応できない——動くことを許される頃には、状況はすでに先へ進んでしまっている。
預け入れ者ごとの出金タイミングは、預け入れ者ごとの手数料と同じ方法でこの問題を解決する。Autopilotは、基盤となるボールトの内部でより短い条件で運用される一方、他のすべての預け入れ者に公開されている条件はまったく変わらない。同じロックアップ期間、同じクールダウン期間、同じページのままだ。

その結果、Autopilotは、別種の預け入れ者向けに設計された保護機能の後ろに並んで待つことなく、迅速にリバランスできる。
戦略Aから戦略Bへの再配分は、かつては3つのステップを意味していた。出金し、待ち、再入金する。その間、資本は何もせずに待機していた——市場の外にあり、何も稼がず、2つのボールトの間で宙に浮いたままだった。これを「デッドホップ」と呼ぼう。
今では、これは単一のスイッチリクエストで完結する。バッチ処理の間、出金元からの出金は、保留中の入金として移動先のボールトに直接決済される。移動先が拒否した場合の安全なフォールバックも備えている。資本はローテーションの間もずっと働き続ける。

そして、強調しておくべきカストディ上のポイントがある。スイッチの間、資本がプログラムの外に出ることは一切ない。ウォールドガーデンは、資金が庭から庭へ移動する間も保たれたままだ。
ビルダーコード。 パートナーやディストリビューター向けのレベニューシェアを、請求書ではなくプログラムによってオンチェーンで強制する仕組みだ。パートナーが登録し、リファラル分析を閲覧し、APIアクセスを取得できるポータルが近日公開される。
トークン化。 ボールトのシェアは、もっと多くのことができるものになりつつある。担保にする。貸し出す。今のところ言えるのはここまでだ。

「一度の預け入れで複数の戦略に配分し、状況の変化に応じてリバランスする。」
プロダクトはシンプルに見える。これが、その裏側の仕事だった。