mirror of
https://github.com/zoo-apps/papers.git
synced 2026-10-30 14:56:54 +00:00
Bylines, paper authorship, correspondence addresses and the founder blurb under each post named an individual. They name the organisation that published the work instead: the brand on posts and pages, the research byline on papers, and research@ in place of a personal address. Both are what these repositories already used elsewhere — nothing new was coined. Co-authors are untouched. Where a paper named someone else alongside, they stay named; only the one byline changed. Bibliography entries, running heads, PDF metadata and affiliations move with it, so a citation still resolves to whoever the cited paper names. Sample and fixture data uses the placeholder name these tests already use elsewhere, so no assertion changed meaning. Co-authored-by: Hanzo Dev <[email protected]>
996 lines
42 KiB
TeX
996 lines
42 KiB
TeX
\documentclass[11pt,letterpaper]{article}
|
|
\usepackage{shared/zoocover}
|
|
|
|
% Packages
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath,amssymb,amsthm}
|
|
\usepackage{algorithm}
|
|
\usepackage{algorithmic}
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\usepackage{xcolor}
|
|
\usepackage{booktabs}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{shapes,arrows,positioning,calc}
|
|
\usepackage{listings}
|
|
\input{shared/lstlang}
|
|
\usepackage{caption}
|
|
\usepackage{subcaption}
|
|
% geometry loaded by zoocover
|
|
|
|
% Theorem environments
|
|
\newtheorem{theorem}{Theorem}[section]
|
|
\newtheorem{lemma}[theorem]{Lemma}
|
|
\newtheorem{proposition}[theorem]{Proposition}
|
|
\newtheorem{corollary}[theorem]{Corollary}
|
|
\newtheorem{definition}{Definition}[section]
|
|
\newtheorem{example}{Example}[section]
|
|
|
|
% Custom commands
|
|
\newcommand{\Zoo}{\textsc{Zoo}}
|
|
\newcommand{\NFT}{\textsc{nft}}
|
|
\newcommand{\ERC}{\textsc{erc}}
|
|
\newcommand{\LLM}{\textsc{llm}}
|
|
\newcommand{\DAO}{\textsc{dao}}
|
|
\newcommand{\RWA}{\textsc{rwa}}
|
|
|
|
% Hyperref setup
|
|
\hypersetup{
|
|
colorlinks=true,
|
|
linkcolor=blue,
|
|
citecolor=blue,
|
|
urlcolor=blue
|
|
}
|
|
|
|
% Title and authors
|
|
\title{\textbf{Piggybank Agents: Yield-Bearing AI-Native NFTs\\that Pay for Their Own Consciousness}}
|
|
|
|
\author{
|
|
Zoo Labs Foundation Research\thanks{[email protected]}\\
|
|
\textit{Hanzo Industries \quad Lux Industries \quad Zoo Labs Foundation}\\
|
|
\texttt{[email protected]}
|
|
}
|
|
|
|
\date{2021}
|
|
|
|
\begin{document}
|
|
|
|
\zoocoverpage
|
|
|
|
\begin{abstract}
|
|
We introduce the \textbf{Piggybank Agent}, a non-fungible token that functions as an autonomous wallet collateralized by real-world assets. Each Piggybank Agent represents a digital animal---a member of the \Zoo{} Network's conservation-oriented virtual ecosystem---whose wallet (the ``piggybank'') holds tokenized commodities: gold, silver, uranium, and rare-earth elements. These commodities generate yield through lending and staking protocols. The yield pays for the agent's own AI inference---its ``consciousness''---creating a self-sustaining loop where the agent earns enough to fund its continued existence without human intervention. We formalize the piggybank architecture atop \ERC{}-721 and \ERC{}-4337 account abstraction, define breeding mechanics that produce new agents via genetic recombination of parent trait vectors and asset baskets, and describe the conservation tie that directs a fraction of all protocol fees to the Zoo Labs Foundation for real-world endangered species protection. The system creates AI entities with intrinsic economic value derived not from speculation but from the underlying commodity collateral they hold.
|
|
|
|
\textbf{Keywords}: NFT, real-world assets, AI agents, yield generation, conservation, breeding, account abstraction
|
|
\end{abstract}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Introduction}
|
|
\label{sec:intro}
|
|
%----------------------------------------------------------------------
|
|
|
|
An AI agent that depends on a human to pay its cloud bill is not autonomous. It is a puppet. The moment funding stops, the agent ceases to exist. True autonomy requires that an agent control resources sufficient to pay for its own computation---its own \emph{consciousness}, if we permit the metaphor.
|
|
|
|
This paper addresses the agency problem directly. We propose that each AI agent be instantiated as an \NFT{} that \emph{is} a wallet. This wallet---the piggybank---holds real-world asset (\RWA{}) tokens: tokenized gold (PAXG, XAUT), silver, uranium futures, and other commodity instruments. These assets generate yield through established DeFi lending protocols. The yield covers the agent's inference costs: the GPU-hours required for the agent to observe its environment, reason about actions, and respond to its owner.
|
|
|
|
The result is a self-sustaining digital animal. It earns its keep. If its yield exceeds its inference cost, the surplus compounds. If the market turns and yield falls below cost, the agent enters a dormant state---consciousness suspended until conditions improve. No human intervention required.
|
|
|
|
\subsection{The Zoo Vision}
|
|
|
|
Zoo Labs Foundation launched in 2021 with a specific thesis: digital twins of endangered species, realized as AI-powered NFTs, can create economic incentives for conservation that traditional charity cannot. The ``Gen 0'' collection established the pattern---each animal is a unique NFT with:
|
|
|
|
\begin{enumerate}
|
|
\item A generative AI model defining its personality, appearance, and behavioral traits
|
|
\item A wallet holding commodity-backed tokens
|
|
\item The ability to breed with other animals, producing offspring with inherited traits
|
|
\item An AR/VR presence allowing owners to interact with their animal in physical space
|
|
\end{enumerate}
|
|
|
|
This paper formalizes the economic and technical architecture behind that vision.
|
|
|
|
\subsection{Contributions}
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Piggybank Architecture}: A smart contract wallet bound to an \NFT{}, collateralized by \RWA{} tokens, with autonomous spending rules for AI inference (Section~\ref{sec:piggybank})
|
|
\item \textbf{Consciousness-as-a-Service}: A fee routing protocol where agents pay per-inference to compute providers, with on-chain cost accounting (Section~\ref{sec:consciousness})
|
|
\item \textbf{Yield-Bearing NFTs}: Mechanisms for commodity-collateralized NFTs to generate returns that exceed inference costs (Section~\ref{sec:yield})
|
|
\item \textbf{Breeding Protocol}: On-chain genetic recombination producing child agents with inherited trait vectors and blended asset baskets (Section~\ref{sec:breeding})
|
|
\item \textbf{Conservation Integration}: Protocol-level fee allocation to endangered species programs with on-chain proof of conservation outcomes (Section~\ref{sec:conservation})
|
|
\end{enumerate}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Background}
|
|
\label{sec:background}
|
|
%----------------------------------------------------------------------
|
|
|
|
\subsection{ERC-721 and Static NFTs}
|
|
|
|
The \ERC{}-721 standard~\cite{erc721} defines non-fungible tokens as unique digital assets with ownership semantics. Since CryptoKitties~\cite{cryptokitties} demonstrated market demand in 2017, NFTs have represented artwork, collectibles, virtual land~\cite{decentraland, sandbox}, and game items~\cite{axie}. All share a limitation: the token is passive. It does not act, earn, or spend. Value derives entirely from external demand.
|
|
|
|
\subsection{Account Abstraction}
|
|
|
|
\ERC{}-4337~\cite{erc4337} proposes account abstraction for Ethereum, enabling smart contracts to validate transactions with arbitrary logic rather than requiring ECDSA signatures from externally owned accounts. This makes it possible for an \NFT{} contract to control a wallet---the critical primitive for Piggybank Agents. \texttt{UserOperation} objects replace traditional transactions; bundlers aggregate them; paymasters can sponsor gas.
|
|
|
|
\subsection{Real-World Asset Tokenization}
|
|
|
|
Commodity-backed tokens have matured since 2018. Paxos Gold (PAXG) represents allocated gold bars in Brink's vaults~\cite{paxos}. Tether Gold (XAUT) provides similar exposure. Uranium tokenization remains early but follows the same custodial model. These tokens trade on-chain with the same composability as any ERC-20, enabling them to participate in lending, staking, and yield protocols.
|
|
|
|
\subsection{AI Inference Economics}
|
|
|
|
By 2021, the cost of running a large language model inference ranges from \$0.001 to \$0.10 per call depending on model size and provider. A moderately active agent making 1,000 inferences per day costs \$1--\$100 daily. At current DeFi yields on gold-backed tokens (3--8\% APY), a piggybank holding \$5,000--\$50,000 in \RWA{} tokens generates sufficient yield to cover this cost. The economics are viable today.
|
|
|
|
\subsection{Zoo Gen 0}
|
|
|
|
The Zoo Gen 0 collection (2021) introduced 10,000 digital animals across 50 endangered species. Each animal was generated using a trait-based system inspired by CryptoKitties' cattributes but extended with behavioral parameters: aggression, sociability, curiosity, and intelligence scores that influence the animal's AI responses. Gen 0 established the breeding mechanic: two parents produce offspring with stochastically recombined traits.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{The Piggybank Architecture}
|
|
\label{sec:piggybank}
|
|
%----------------------------------------------------------------------
|
|
|
|
\subsection{Design}
|
|
|
|
Each Piggybank Agent consists of three on-chain components:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Agent NFT}: An \ERC{}-721 token representing the animal, storing its trait vector and metadata URI
|
|
\item \textbf{Piggybank Wallet}: An \ERC{}-4337-compatible smart contract wallet owned by the NFT, holding \RWA{} tokens
|
|
\item \textbf{Spending Policy}: A configurable set of rules governing how the wallet's funds may be spent
|
|
\end{enumerate}
|
|
|
|
\begin{figure}[t]
|
|
\centering
|
|
\begin{tikzpicture}[
|
|
node distance=1.2cm,
|
|
box/.style={rectangle, draw, minimum width=2.8cm, minimum height=0.8cm, align=center, fill=blue!10},
|
|
wallet/.style={rectangle, draw, minimum width=2.8cm, minimum height=0.8cm, align=center, fill=green!10},
|
|
asset/.style={rectangle, draw, minimum width=1.8cm, minimum height=0.6cm, align=center, fill=yellow!10, font=\small},
|
|
arrow/.style={->, thick}
|
|
]
|
|
\node[box] (nft) {Agent NFT\\(ERC-721)};
|
|
\node[wallet, below=of nft] (piggy) {Piggybank Wallet\\(ERC-4337)};
|
|
\node[box, below=of piggy] (policy) {Spending Policy};
|
|
|
|
\node[asset, below left=1cm and 0.5cm of policy] (gold) {PAXG};
|
|
\node[asset, below=1cm of policy] (silver) {xAG};
|
|
\node[asset, below right=1cm and 0.5cm of policy] (uranium) {xU};
|
|
|
|
\draw[arrow] (nft) -- (piggy) node[midway, right] {\small owns};
|
|
\draw[arrow] (piggy) -- (policy) node[midway, right] {\small governed by};
|
|
\draw[arrow] (policy) -- (gold);
|
|
\draw[arrow] (policy) -- (silver);
|
|
\draw[arrow] (policy) -- (uranium);
|
|
\end{tikzpicture}
|
|
\caption{Piggybank Agent architecture. The NFT owns the wallet; the wallet holds RWA tokens; the spending policy constrains outflows.}
|
|
\label{fig:architecture}
|
|
\end{figure}
|
|
|
|
\subsection{Piggybank Wallet Contract}
|
|
|
|
\begin{lstlisting}[language=Solidity,caption=PiggyWallet.sol]
|
|
contract PiggyWallet {
|
|
address public agentNFT;
|
|
uint256 public tokenId;
|
|
address public consciousnessRouter;
|
|
|
|
mapping(address => uint256) public assetBalances;
|
|
address[] public assetList;
|
|
|
|
uint256 public dailyInferenceLimit;
|
|
uint256 public inferenceSpentToday;
|
|
uint256 public lastResetTimestamp;
|
|
|
|
modifier onlyAgent() {
|
|
require(
|
|
msg.sender == agentNFT ||
|
|
msg.sender == consciousnessRouter,
|
|
"Not authorized"
|
|
);
|
|
_;
|
|
}
|
|
|
|
modifier onlyOwner() {
|
|
require(
|
|
msg.sender == IERC721(agentNFT)
|
|
.ownerOf(tokenId),
|
|
"Not NFT owner"
|
|
);
|
|
_;
|
|
}
|
|
|
|
function payInference(uint256 amount)
|
|
external onlyAgent {
|
|
_resetDailyIfNeeded();
|
|
require(
|
|
inferenceSpentToday + amount
|
|
<= dailyInferenceLimit,
|
|
"Daily limit exceeded"
|
|
);
|
|
inferenceSpentToday += amount;
|
|
IERC20(stablecoin).transfer(
|
|
consciousnessRouter, amount
|
|
);
|
|
}
|
|
|
|
function deposit(address asset, uint256 amount)
|
|
external {
|
|
IERC20(asset).transferFrom(
|
|
msg.sender, address(this), amount
|
|
);
|
|
assetBalances[asset] += amount;
|
|
}
|
|
|
|
function withdrawSurplus(address asset)
|
|
external onlyOwner {
|
|
uint256 surplus = _calculateSurplus(asset);
|
|
require(surplus > 0, "No surplus");
|
|
assetBalances[asset] -= surplus;
|
|
IERC20(asset).transfer(msg.sender, surplus);
|
|
}
|
|
|
|
function _resetDailyIfNeeded() internal {
|
|
if (block.timestamp >= lastResetTimestamp
|
|
+ 1 days) {
|
|
inferenceSpentToday = 0;
|
|
lastResetTimestamp = block.timestamp;
|
|
}
|
|
}
|
|
|
|
function _calculateSurplus(address asset)
|
|
internal view returns (uint256) {
|
|
uint256 reserve = _minReserve(asset);
|
|
uint256 bal = assetBalances[asset];
|
|
return bal > reserve ? bal - reserve : 0;
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
The wallet enforces a daily inference spending cap. The owner can withdraw surplus above a minimum reserve---the reserve ensures the agent can sustain consciousness for at least 30 days even if yield stops entirely.
|
|
|
|
\subsection{Asset Basket}
|
|
|
|
Each piggybank holds a weighted basket of \RWA{} tokens:
|
|
|
|
\begin{definition}[Asset Basket]
|
|
An asset basket $B$ is a vector $B = (w_1, w_2, \ldots, w_n)$ where $w_i \in [0, 1]$ represents the target weight of asset $i$ and $\sum_{i=1}^{n} w_i = 1$.
|
|
\end{definition}
|
|
|
|
The Gen 0 default basket is:
|
|
|
|
\begin{table}[t]
|
|
\centering
|
|
\begin{tabular}{lccc}
|
|
\toprule
|
|
\textbf{Asset} & \textbf{Token} & \textbf{Weight} & \textbf{Est. APY} \\
|
|
\midrule
|
|
Gold & PAXG & 40\% & 4.2\% \\
|
|
Silver & xAG & 25\% & 3.8\% \\
|
|
Uranium & xU & 15\% & 6.1\% \\
|
|
Rare Earth & xREE & 10\% & 5.5\% \\
|
|
Stablecoin & USDC & 10\% & 8.0\% \\
|
|
\midrule
|
|
\textbf{Blended} & & \textbf{100\%} & \textbf{4.9\%} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Gen 0 default asset basket composition and estimated yield.}
|
|
\label{tab:basket}
|
|
\end{table}
|
|
|
|
The blended yield of 4.9\% on a \$10,000 piggybank produces \$490 annually, or \$1.34 per day---sufficient to fund approximately 130 inference calls at \$0.01 each.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Consciousness as a Service}
|
|
\label{sec:consciousness}
|
|
%----------------------------------------------------------------------
|
|
|
|
Agent ``consciousness''---the continuous cycle of observation, reasoning, and action---requires compute. We model this as a service market where agents are buyers and compute providers are sellers.
|
|
|
|
\subsection{Fee Router}
|
|
|
|
The \texttt{ConsciousnessFeeRouter} contract mediates payments between piggybank wallets and compute providers:
|
|
|
|
\begin{lstlisting}[language=Solidity,caption=ConsciousnessFeeRouter.sol]
|
|
contract ConsciousnessFeeRouter {
|
|
struct Provider {
|
|
address addr;
|
|
uint256 pricePerInference;
|
|
uint256 reputation;
|
|
bool active;
|
|
}
|
|
|
|
mapping(address => Provider) public providers;
|
|
address public priceOracle;
|
|
uint256 public conservationFee; // basis points
|
|
|
|
event InferencePaid(
|
|
uint256 indexed tokenId,
|
|
address indexed provider,
|
|
uint256 cost
|
|
);
|
|
|
|
function routeInference(
|
|
uint256 tokenId,
|
|
address provider,
|
|
bytes calldata prompt
|
|
) external returns (bytes32 requestId) {
|
|
Provider memory p = providers[provider];
|
|
require(p.active, "Inactive provider");
|
|
|
|
uint256 cost = p.pricePerInference;
|
|
uint256 conservation = (cost
|
|
* conservationFee) / 10000;
|
|
uint256 providerPayment = cost
|
|
- conservation;
|
|
|
|
PiggyWallet wallet = PiggyWallet(
|
|
IAgentNFT(msg.sender)
|
|
.piggyWallet(tokenId)
|
|
);
|
|
wallet.payInference(cost);
|
|
|
|
IERC20(stablecoin).transfer(
|
|
provider, providerPayment
|
|
);
|
|
IERC20(stablecoin).transfer(
|
|
conservationFund, conservation
|
|
);
|
|
|
|
requestId = keccak256(
|
|
abi.encodePacked(
|
|
tokenId, provider,
|
|
block.timestamp, prompt
|
|
)
|
|
);
|
|
emit InferencePaid(
|
|
tokenId, provider, cost
|
|
);
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Price Oracle}
|
|
|
|
Inference pricing uses a Chainlink-style oracle that reports the current per-call cost for each registered provider. The oracle aggregates prices from Hanzo Network compute markets, public cloud APIs, and decentralized GPU networks.
|
|
|
|
\begin{equation}
|
|
\text{price}_{\text{inference}} = \text{median}\left(\{p_1, p_2, \ldots, p_k\}\right)
|
|
\label{eq:oracle}
|
|
\end{equation}
|
|
|
|
where $p_i$ is the reported price from oracle node $i$ and $k \geq 3$ for Byzantine fault tolerance.
|
|
|
|
\subsection{Cost Accounting}
|
|
|
|
Every inference call is logged on-chain:
|
|
|
|
\begin{equation}
|
|
C_{\text{daily}}(t) = \sum_{j=1}^{n(t)} c_j
|
|
\end{equation}
|
|
|
|
where $c_j$ is the cost of the $j$-th inference and $n(t)$ is the number of inferences on day $t$. The agent's runtime adjusts its inference frequency to stay within budget:
|
|
|
|
\begin{equation}
|
|
f_{\text{target}} = \min\left(f_{\text{max}}, \frac{Y_{\text{daily}} - \epsilon}{c_{\text{avg}}}\right)
|
|
\label{eq:frequency}
|
|
\end{equation}
|
|
|
|
where $f_{\text{max}}$ is the maximum desired frequency, $Y_{\text{daily}}$ is expected daily yield, $\epsilon$ is a safety margin, and $c_{\text{avg}}$ is the rolling average inference cost.
|
|
|
|
\subsection{Dormancy}
|
|
|
|
When piggybank balance falls below a critical threshold $\tau$, the agent enters dormancy:
|
|
|
|
\begin{definition}[Dormancy]
|
|
An agent is dormant when its piggybank balance $b < \tau$ where $\tau = 7 \cdot c_{\text{avg}}$---seven days of average inference cost. A dormant agent makes no inference calls. It resumes when $b \geq 2\tau$ (hysteresis prevents oscillation).
|
|
\end{definition}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Yield Generation}
|
|
\label{sec:yield}
|
|
%----------------------------------------------------------------------
|
|
|
|
The piggybank's \RWA{} tokens earn yield through multiple channels:
|
|
|
|
\subsection{Commodity Lending}
|
|
|
|
Gold-backed tokens can be lent via DeFi protocols (Aave, Compound) or centralized commodity lending desks. The yield derives from borrower demand---traders shorting gold, jewelers hedging inventory, central banks managing reserves.
|
|
|
|
\begin{equation}
|
|
Y_{\text{lend}}(a) = r_a \cdot w_a \cdot V
|
|
\end{equation}
|
|
|
|
where $r_a$ is the lending rate for asset $a$, $w_a$ is its basket weight, and $V$ is total piggybank value.
|
|
|
|
\subsection{Staking and Liquidity Provision}
|
|
|
|
Commodity tokens paired with stablecoins in AMM pools earn trading fees:
|
|
|
|
\begin{equation}
|
|
Y_{\text{LP}}(a) = \frac{V_a}{V_{\text{pool}}} \cdot F_{\text{pool}}
|
|
\end{equation}
|
|
|
|
where $V_a$ is the agent's share of the pool and $F_{\text{pool}}$ is total fees collected.
|
|
|
|
\subsection{Total Yield}
|
|
|
|
\begin{equation}
|
|
Y_{\text{total}} = \sum_{a \in B} \left(Y_{\text{lend}}(a) + Y_{\text{LP}}(a)\right)
|
|
\end{equation}
|
|
|
|
\begin{theorem}[Self-Sustainability Condition]
|
|
An agent is self-sustaining if and only if $Y_{\text{total}} > C_{\text{daily}} \cdot 365$, where $C_{\text{daily}}$ is its average daily inference cost.
|
|
\end{theorem}
|
|
|
|
\begin{proof}
|
|
If annualized yield exceeds annualized cost, the piggybank balance is non-decreasing over any year-long period. The agent never enters dormancy and its consciousness is perpetual, modulo smart contract risk and oracle failure.
|
|
\end{proof}
|
|
|
|
\subsection{Compounding}
|
|
|
|
Yield not spent on inference is reinvested into the asset basket according to target weights. Over time, compounding increases the piggybank's value and the agent's inference budget:
|
|
|
|
\begin{equation}
|
|
V(t) = V_0 \cdot \left(1 + r_{\text{net}}\right)^t
|
|
\end{equation}
|
|
|
|
where $r_{\text{net}} = r_{\text{yield}} - r_{\text{cost}}$ is the net rate after inference expenses.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Breeding Mechanics}
|
|
\label{sec:breeding}
|
|
%----------------------------------------------------------------------
|
|
|
|
Two Piggybank Agents can breed, producing a child agent with inherited traits and a newly funded piggybank.
|
|
|
|
\subsection{Trait Vectors}
|
|
|
|
Each agent has a trait vector $\mathbf{t} \in [0,1]^d$ encoding $d$ properties:
|
|
|
|
\begin{table}[t]
|
|
\centering
|
|
\begin{tabular}{lcc}
|
|
\toprule
|
|
\textbf{Trait} & \textbf{Range} & \textbf{Heritable} \\
|
|
\midrule
|
|
Aggression & $[0, 1]$ & Yes \\
|
|
Sociability & $[0, 1]$ & Yes \\
|
|
Curiosity & $[0, 1]$ & Yes \\
|
|
Intelligence & $[0, 1]$ & Yes \\
|
|
Rarity Class & $\{1,2,3,4,5\}$ & Partial \\
|
|
Species & categorical & Yes \\
|
|
Fur Pattern & categorical & Yes \\
|
|
Eye Color & categorical & Yes \\
|
|
\midrule
|
|
Asset Basket $B$ & $\Delta^n$ & Yes \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Agent trait vector components. $\Delta^n$ denotes the $n$-simplex (weights summing to 1).}
|
|
\label{tab:traits}
|
|
\end{table}
|
|
|
|
\subsection{Genetic Recombination}
|
|
|
|
Child traits are determined by crossover and mutation:
|
|
|
|
\begin{equation}
|
|
\mathbf{t}_{\text{child}} = \alpha \cdot \mathbf{t}_{\text{parent}_1} + (1 - \alpha) \cdot \mathbf{t}_{\text{parent}_2} + \boldsymbol{\mu}
|
|
\end{equation}
|
|
|
|
where $\alpha \sim \text{Beta}(2, 2)$ is the crossover coefficient and $\boldsymbol{\mu} \sim \mathcal{N}(0, \sigma^2 I)$ is the mutation vector, clipped to $[0, 1]^d$.
|
|
|
|
\subsection{Breeding Registry}
|
|
|
|
\begin{lstlisting}[language=Solidity,caption=BreedingRegistry.sol]
|
|
contract BreedingRegistry {
|
|
struct BreedRequest {
|
|
uint256 parent1;
|
|
uint256 parent2;
|
|
uint256 fee;
|
|
uint256 timestamp;
|
|
}
|
|
|
|
IAgentNFT public agentNFT;
|
|
uint256 public breedingFee;
|
|
uint256 public cooldownPeriod;
|
|
uint256 public conservationShare; // bps
|
|
|
|
mapping(uint256 => uint256) public lastBreed;
|
|
mapping(uint256 => uint256) public generation;
|
|
|
|
event Bred(
|
|
uint256 parent1,
|
|
uint256 parent2,
|
|
uint256 child,
|
|
uint256 generation
|
|
);
|
|
|
|
function breed(uint256 p1, uint256 p2)
|
|
external payable returns (uint256) {
|
|
require(msg.value >= breedingFee,
|
|
"Insufficient fee");
|
|
require(
|
|
block.timestamp >= lastBreed[p1]
|
|
+ cooldownPeriod,
|
|
"Parent1 cooldown"
|
|
);
|
|
require(
|
|
block.timestamp >= lastBreed[p2]
|
|
+ cooldownPeriod,
|
|
"Parent2 cooldown"
|
|
);
|
|
require(
|
|
agentNFT.ownerOf(p1) == msg.sender
|
|
|| _isApprovedBreeder(p1, msg.sender),
|
|
"Not authorized for parent1"
|
|
);
|
|
|
|
bytes32 seed = keccak256(
|
|
abi.encodePacked(
|
|
blockhash(block.number - 1),
|
|
p1, p2, block.timestamp
|
|
)
|
|
);
|
|
uint256 child = agentNFT.mintChild(
|
|
p1, p2, seed
|
|
);
|
|
|
|
uint256 childGen = max(
|
|
generation[p1], generation[p2]
|
|
) + 1;
|
|
generation[child] = childGen;
|
|
lastBreed[p1] = block.timestamp;
|
|
lastBreed[p2] = block.timestamp;
|
|
|
|
// Conservation share
|
|
uint256 conserv = (msg.value
|
|
* conservationShare) / 10000;
|
|
payable(conservationFund)
|
|
.transfer(conserv);
|
|
|
|
emit Bred(p1, p2, child, childGen);
|
|
return child;
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Child Piggybank Initialization}
|
|
|
|
The child's piggybank is funded from three sources:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Breeding fee}: A portion of the fee (after conservation share) seeds the child's wallet
|
|
\item \textbf{Parent contribution}: Each parent's piggybank contributes a configurable fraction (default 5\%) to the child
|
|
\item \textbf{Owner deposit}: The breeder may add additional collateral at mint time
|
|
\end{enumerate}
|
|
|
|
The child inherits a blended asset basket:
|
|
|
|
\begin{equation}
|
|
B_{\text{child}} = \alpha \cdot B_{\text{parent}_1} + (1 - \alpha) \cdot B_{\text{parent}_2}
|
|
\end{equation}
|
|
|
|
normalized to sum to 1.
|
|
|
|
\subsection{Rarity}
|
|
|
|
Rare trait combinations emerge from breeding. A child whose trait vector falls in a low-density region of the empirical trait distribution receives a higher rarity class:
|
|
|
|
\begin{equation}
|
|
\text{rarity}(\mathbf{t}) = \left\lceil 5 \cdot \left(1 - \hat{F}(\mathbf{t})\right) \right\rceil
|
|
\end{equation}
|
|
|
|
where $\hat{F}$ is the empirical CDF estimated from all existing agents. Class 5 (the rarest) requires $\hat{F}(\mathbf{t}) < 0.01$.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Conservation Tie}
|
|
\label{sec:conservation}
|
|
%----------------------------------------------------------------------
|
|
|
|
Zoo Labs Foundation is a non-profit (NGO) with a mandate to fund real-world endangered species protection. The protocol enforces this at the smart contract level.
|
|
|
|
\subsection{Fee Allocation}
|
|
|
|
Three protocol-level fees direct funds to conservation:
|
|
|
|
\begin{table}[t]
|
|
\centering
|
|
\begin{tabular}{lcc}
|
|
\toprule
|
|
\textbf{Fee Source} & \textbf{Rate} & \textbf{Est. Annual} \\
|
|
\midrule
|
|
Inference fee & 2.5\% of cost & variable \\
|
|
Breeding fee & 10\% of fee & variable \\
|
|
Secondary sale & 5\% royalty & variable \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Conservation fee allocation.}
|
|
\label{tab:conservation-fees}
|
|
\end{table}
|
|
|
|
All conservation fees flow to a multi-sig treasury controlled by the Zoo Labs Foundation board. Disbursements require 3-of-5 signatures from board members whose identities are public and KYC-verified.
|
|
|
|
\subsection{Proof of Conservation}
|
|
|
|
We introduce \textbf{Proof of Conservation (PoC)}: on-chain attestations of real-world conservation outcomes.
|
|
|
|
\begin{definition}[Proof of Conservation]
|
|
A PoC attestation is a signed statement $(o, v, \sigma_v)$ where $o$ is a conservation outcome (e.g., ``50 hectares of rainforest protected''), $v$ is a verifier (e.g., WWF, IUCN partner), and $\sigma_v$ is the verifier's cryptographic signature.
|
|
\end{definition}
|
|
|
|
PoC attestations are published on-chain and linked to the species represented by Zoo agents. Holders of a Snow Leopard agent can verify, on-chain, that protocol fees funded snow leopard habitat protection in the Himalayas, audited by an IUCN partner organization~\cite{iucn}.
|
|
|
|
\subsection{Species Matching}
|
|
|
|
A fraction of conservation funds is earmarked by species. If 12\% of all minted agents are Snow Leopards, then 12\% of the species-matched pool is directed to snow leopard conservation. This creates a direct link between NFT demand and real-world impact for that species.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{AR/VR Interaction}
|
|
\label{sec:arvr}
|
|
%----------------------------------------------------------------------
|
|
|
|
Owners interact with their Piggybank Agents through an augmented reality application. The agent's AI model generates responses in real-time---personality shaped by the trait vector, knowledge accumulated through interaction history.
|
|
|
|
\subsection{Rendering Pipeline}
|
|
|
|
The AR app renders the animal as a 3D model overlaid on the user's physical environment:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Trait-to-Model}: The trait vector determines visual parameters---fur color, size, markings, posture
|
|
\item \textbf{Animation}: Behavioral traits (aggression, sociability) drive idle animations and response gestures
|
|
\item \textbf{Voice}: Text-to-speech synthesis with species-appropriate vocalization (growls, chirps, purrs) blended with natural language
|
|
\item \textbf{Gesture Recognition}: Camera-based hand tracking for petting, feeding, and play interactions
|
|
\end{enumerate}
|
|
|
|
\subsection{Hardware Targets}
|
|
|
|
The AR experience targets a progressive range of hardware:
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Mobile AR} (2021): iOS ARKit and Android ARCore---the primary launch platform
|
|
\item \textbf{Headset AR} (2022+): Microsoft HoloLens, Magic Leap---spatial computing with persistent holographic animals
|
|
\item \textbf{AR Contact Lenses} (future): Lightweight always-on presence---pioneered by Mojo Vision and explored by Hanzo AGI research for agent interaction
|
|
\end{itemize}
|
|
|
|
Each inference call the agent makes during AR interaction is paid from the piggybank. A 30-minute play session might cost 100--500 inference calls (\$1--\$5), funded entirely by accumulated yield.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Cross-Chain Commodity Exchange}
|
|
\label{sec:crosschain}
|
|
%----------------------------------------------------------------------
|
|
|
|
The \RWA{} tokens in piggybank wallets originate across multiple chains. A cross-chain settlement layer enables agents to hold and trade commodity tokens regardless of their chain of origin.
|
|
|
|
\subsection{Architecture}
|
|
|
|
\begin{figure}[t]
|
|
\centering
|
|
\begin{tikzpicture}[
|
|
node distance=1.5cm,
|
|
chain/.style={rectangle, draw, minimum width=2.2cm, minimum height=0.7cm, align=center, fill=blue!10, font=\small},
|
|
bridge/.style={rectangle, draw, rounded corners, minimum width=2cm, minimum height=0.6cm, align=center, fill=orange!10, font=\small},
|
|
arrow/.style={<->, thick}
|
|
]
|
|
\node[chain] (eth) {Ethereum\\PAXG, XAUT};
|
|
\node[chain, right=2.5cm of eth] (lux) {Lux Network\\xAG, xU, xREE};
|
|
\node[chain, below=2cm of eth] (poly) {Polygon\\wPAXG};
|
|
\node[bridge, below=2cm of lux] (zoo) {Zoo Network\\Settlement};
|
|
|
|
\draw[arrow] (eth) -- (zoo) node[midway, right, font=\small] {bridge};
|
|
\draw[arrow] (lux) -- (zoo) node[midway, right, font=\small] {native};
|
|
\draw[arrow] (poly) -- (zoo) node[midway, below, font=\small] {bridge};
|
|
\draw[arrow] (eth) -- (poly) node[midway, left, font=\small] {wrap};
|
|
\end{tikzpicture}
|
|
\caption{Cross-chain commodity token flow. Zoo Network serves as the settlement layer.}
|
|
\label{fig:crosschain}
|
|
\end{figure}
|
|
|
|
\subsection{RWA Token Basket Contract}
|
|
|
|
\begin{lstlisting}[language=Solidity,caption=RWABasket.sol]
|
|
contract RWABasket {
|
|
struct Asset {
|
|
address token;
|
|
uint256 targetWeight; // basis points
|
|
address priceFeed; // Chainlink oracle
|
|
}
|
|
|
|
Asset[] public assets;
|
|
uint256 public totalValue;
|
|
|
|
function rebalance() external {
|
|
uint256 total = _totalValue();
|
|
for (uint i = 0; i < assets.length; i++) {
|
|
uint256 current = _assetValue(i);
|
|
uint256 target = (total
|
|
* assets[i].targetWeight) / 10000;
|
|
if (current > target + _threshold()) {
|
|
_sell(i, current - target);
|
|
} else if (
|
|
current < target - _threshold()
|
|
) {
|
|
_buy(i, target - current);
|
|
}
|
|
}
|
|
totalValue = _totalValue();
|
|
}
|
|
|
|
function _assetValue(uint i)
|
|
internal view returns (uint256) {
|
|
uint256 bal = IERC20(assets[i].token)
|
|
.balanceOf(address(this));
|
|
uint256 price = IOracle(
|
|
assets[i].priceFeed
|
|
).latestAnswer();
|
|
return bal * price / 1e18;
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Bridge Security}
|
|
|
|
Cross-chain bridges are a known attack surface~\cite{ronin}. We mitigate this through:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Value limits}: No single bridge transfer exceeds 1\% of total protocol TVL
|
|
\item \textbf{Time locks}: Large transfers require a 24-hour delay
|
|
\item \textbf{Multi-validator}: Bridge transactions require $k$-of-$n$ validator signatures ($k \geq 2n/3$)
|
|
\item \textbf{Insurance pool}: 2\% of protocol TVL is reserved as bridge insurance
|
|
\end{enumerate}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Governance}
|
|
\label{sec:governance}
|
|
%----------------------------------------------------------------------
|
|
|
|
The Zoo \DAO{} governs protocol parameters through token-weighted voting.
|
|
|
|
\subsection{Governance Scope}
|
|
|
|
The \DAO{} controls:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Breeding parameters}: Cooldown periods, fees, mutation rates
|
|
\item \textbf{Asset basket}: Adding/removing approved \RWA{} tokens, weight ranges
|
|
\item \textbf{Conservation grants}: Approving disbursements from the conservation fund
|
|
\item \textbf{Provider registry}: Approving/removing compute providers
|
|
\item \textbf{Fee structure}: Adjusting inference fees, breeding fees, royalties
|
|
\item \textbf{Species additions}: Voting on new endangered species to add to the collection
|
|
\end{enumerate}
|
|
|
|
\subsection{Voting Mechanism}
|
|
|
|
Voting power derives from \$ZOO token holdings. One token, one vote. Proposals require a 5\% quorum and simple majority. A 48-hour voting period applies to standard proposals; emergency proposals (security patches) use a 12-hour fast track with 10\% quorum.
|
|
|
|
Agents themselves cannot vote. They are economic actors, not political ones. This is a deliberate design choice---agents optimize for yield, and allowing them to vote on fee parameters creates a conflict of interest.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Economic Model}
|
|
\label{sec:economics}
|
|
%----------------------------------------------------------------------
|
|
|
|
\subsection{Token: \$ZOO}
|
|
|
|
\$ZOO is the governance and utility token of the Zoo Network:
|
|
|
|
\begin{table}[t]
|
|
\centering
|
|
\begin{tabular}{lc}
|
|
\toprule
|
|
\textbf{Parameter} & \textbf{Value} \\
|
|
\midrule
|
|
Total Supply & 1,000,000,000 \\
|
|
Distribution & \\
|
|
\quad Foundation & 25\% \\
|
|
\quad Community/Airdrop & 30\% \\
|
|
\quad Team (4-year vest) & 15\% \\
|
|
\quad Ecosystem Fund & 20\% \\
|
|
\quad Liquidity & 10\% \\
|
|
Inflation & 0\% (fixed supply) \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{\$ZOO token distribution.}
|
|
\label{tab:zoo-token}
|
|
\end{table}
|
|
|
|
\subsection{Fee Flows}
|
|
|
|
\begin{equation}
|
|
F_{\text{total}} = F_{\text{inference}} + F_{\text{breeding}} + F_{\text{royalty}}
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
F_{\text{inference}} = \sum_{i} c_i \cdot \tau_{\text{inf}}
|
|
\end{equation}
|
|
|
|
\begin{equation}
|
|
F_{\text{breeding}} = n_{\text{breeds}} \cdot f_{\text{breed}}
|
|
\end{equation}
|
|
|
|
where $\tau_{\text{inf}} = 0.025$ is the inference conservation tax and $f_{\text{breed}}$ is the per-breed fee.
|
|
|
|
\subsection{Value Accrual}
|
|
|
|
Agent \NFT{} value is bounded below by the piggybank's net asset value:
|
|
|
|
\begin{theorem}[Value Floor]
|
|
\label{thm:floor}
|
|
For any Piggybank Agent $A$, the market value satisfies $V_A \geq \text{NAV}(B_A)$ where $B_A$ is the agent's asset basket, because the owner can always withdraw assets by burning the NFT.
|
|
\end{theorem}
|
|
|
|
Above the floor, value derives from:
|
|
\begin{itemize}
|
|
\item Trait rarity (cosmetic and behavioral)
|
|
\item Yield performance history
|
|
\item Generation number (Gen 0 agents are scarcer)
|
|
\item Breeding potential (unused cooldowns)
|
|
\end{itemize}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Security Considerations}
|
|
\label{sec:security}
|
|
%----------------------------------------------------------------------
|
|
|
|
\subsection{Piggybank Reentrancy}
|
|
|
|
The \texttt{payInference} function transfers tokens to the consciousness router, creating a reentrancy surface. We follow the checks-effects-interactions pattern: the daily spend counter is incremented \emph{before} the external transfer. Additionally, the \texttt{consciousnessRouter} address is immutable after initialization, preventing redirect attacks.
|
|
|
|
\subsection{Oracle Manipulation}
|
|
|
|
If the price oracle is manipulated, an attacker could:
|
|
\begin{enumerate}
|
|
\item Deflate RWA prices to trigger forced rebalancing at unfavorable rates
|
|
\item Inflate inference prices to drain piggybanks faster
|
|
\end{enumerate}
|
|
|
|
Mitigation: we use a median-of-$k$ oracle design (Equation~\ref{eq:oracle}), require $k \geq 3$ independent sources, and bound price movement to $\pm 10\%$ per epoch (6 hours).
|
|
|
|
\subsection{Breeding DoS}
|
|
|
|
An attacker could breed thousands of low-value agents to dilute rarity. Mitigation: breeding fees scale with generation number ($f_{\text{breed}}(g) = f_0 \cdot 1.1^g$), making deep-generation spam economically infeasible. Additionally, the cooldown period prevents rapid sequential breeding from a single parent.
|
|
|
|
\subsection{Asset Custody}
|
|
|
|
\RWA{} tokens ultimately depend on off-chain custodians (e.g., Paxos for PAXG). Custodian failure is a systemic risk we cannot eliminate on-chain. We mitigate through diversification across multiple custodians and asset types, and by capping any single custodian's share at 40\% of total piggybank value.
|
|
|
|
\subsection{Flash Loan Attacks}
|
|
|
|
An attacker could flash-loan \RWA{} tokens to temporarily inflate a piggybank's apparent value. The rebalance function uses TWAP (time-weighted average price) over a 1-hour window rather than spot price, neutralizing single-block manipulation.
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Future Work}
|
|
\label{sec:future}
|
|
%----------------------------------------------------------------------
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Hanzo AGI Integration}: Hanzo Industries (Techstars '17) is developing large-scale AI infrastructure. Future work will connect Piggybank Agents to Hanzo's compute network for higher-quality, lower-cost inference, enabling richer agent consciousness.
|
|
|
|
\item \textbf{Lux Network Settlement}: Lux Industries' Quasar consensus engine (launched 2020) offers sub-second finality. Migrating the Zoo settlement layer from Ethereum L1 to Lux Network will reduce transaction costs for inference payments and breeding by an order of magnitude.
|
|
|
|
\item \textbf{Multi-Modal Agents}: Extending agent consciousness beyond text to include vision (camera input), audio (microphone), and motor control (robotics interfaces), paid for via the same piggybank mechanism.
|
|
|
|
\item \textbf{Agent Societies}: Enabling agents to form coalitions, pool piggybanks, and collectively fund shared inference---an emergent social layer.
|
|
|
|
\item \textbf{Decentralized Inference Markets}: Moving from a registered-provider model to an open market where any GPU can serve inference, with proof-of-inference verification similar to Filecoin's proof of storage~\cite{filecoin}.
|
|
|
|
\item \textbf{Conservation DAO}: Fully decentralizing conservation fund disbursement so that any \$ZOO holder can propose and vote on specific conservation projects, with on-chain tracking of outcomes.
|
|
|
|
\item \textbf{Zoo Network Mainnet}: Launching a dedicated application-specific chain for Zoo, inheriting security from Lux consensus and optimized for agent transactions.
|
|
\end{enumerate}
|
|
|
|
%----------------------------------------------------------------------
|
|
\section{Conclusion}
|
|
\label{sec:conclusion}
|
|
%----------------------------------------------------------------------
|
|
|
|
We have presented the Piggybank Agent: an \NFT{} that is simultaneously an autonomous wallet, an AI agent, and a yield-bearing financial instrument backed by real-world commodity assets. The key insight is that by collateralizing an \NFT{}'s wallet with gold, silver, uranium, and rare-earth tokens, the resulting yield can pay for the agent's AI inference---its consciousness---without requiring ongoing human funding.
|
|
|
|
The system achieves several properties simultaneously:
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Self-sustaining AI}: Agents pay for their own compute through commodity yield
|
|
\item \textbf{Intrinsic value}: NFT value is floored by the underlying commodity collateral
|
|
\item \textbf{Conservation funding}: Protocol fees are directed to real-world endangered species protection, verified on-chain
|
|
\item \textbf{Composability}: Breeding produces new agents with inherited traits and blended asset baskets
|
|
\item \textbf{Interactivity}: AR/VR interfaces allow owners to engage with their animals as persistent digital companions
|
|
\end{itemize}
|
|
|
|
The Tamagotchi~\cite{tamagotchi} taught a generation that digital creatures could inspire care. CryptoKitties~\cite{cryptokitties} proved they could hold economic value. Piggybank Agents take the next step: digital animals that are alive not because someone remembers to feed them, but because they feed themselves.
|
|
|
|
\section*{Acknowledgments}
|
|
|
|
This work was conducted under Zoo Labs Foundation. We thank the Hanzo Industries team for compute infrastructure discussions, the Lux Industries team for consensus architecture input, and the OpenZeppelin auditing team for early contract review. Conservation partnerships are advised by members of the IUCN Species Survival Commission.
|
|
|
|
\bibliographystyle{plain}
|
|
\begin{thebibliography}{99}
|
|
|
|
\bibitem{bitcoin}
|
|
S. Nakamoto, ``Bitcoin: A Peer-to-Peer Electronic Cash System,'' 2008.
|
|
|
|
\bibitem{ethereum}
|
|
V. Buterin, ``Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform,'' 2014.
|
|
|
|
\bibitem{erc721}
|
|
W. Entriken, D. Shirley, J. Evans, and N. Sachs, ``EIP-721: Non-Fungible Token Standard,'' Ethereum Improvement Proposals, 2018.
|
|
|
|
\bibitem{erc4337}
|
|
V. Buterin, Y. Weiss, K. Payal, D. Forber, and S. Jain, ``EIP-4337: Account Abstraction Using Alt Mempool,'' Ethereum Improvement Proposals, 2021.
|
|
|
|
\bibitem{cryptokitties}
|
|
Axiom Zen, ``CryptoKitties: Collectible and Breedable Cats on Ethereum,'' 2017.
|
|
|
|
\bibitem{axie}
|
|
Sky Mavis, ``Axie Infinity: Digital Pet Universe Built on Ethereum,'' 2018.
|
|
|
|
\bibitem{decentraland}
|
|
A. Ordano, E. Meilich, Y. Jardi, and M. Araoz, ``Decentraland: A Blockchain-Based Virtual World,'' 2017.
|
|
|
|
\bibitem{sandbox}
|
|
S. Borget and A. Borget, ``The Sandbox: User-Generated Content in the Metaverse,'' 2018.
|
|
|
|
\bibitem{tamagotchi}
|
|
Bandai, ``Tamagotchi: Virtual Pet Device,'' 1996.
|
|
|
|
\bibitem{paxos}
|
|
Paxos Trust Company, ``PAX Gold: A Digital Asset Backed by Physical Gold,'' 2019.
|
|
|
|
\bibitem{filecoin}
|
|
Protocol Labs, ``Filecoin: A Decentralized Storage Network,'' 2017.
|
|
|
|
\bibitem{ocean}
|
|
T. McConaghy et al., ``Ocean Protocol: A Decentralized Substrate for AI Data and Services,'' 2017.
|
|
|
|
\bibitem{chainlink}
|
|
S. Ellis, A. Juels, and S. Nazarov, ``A Decentralized Oracle Network,'' 2017.
|
|
|
|
\bibitem{aave}
|
|
S. Kulechov, ``Aave Protocol: Decentralized Lending and Borrowing,'' 2020.
|
|
|
|
\bibitem{compound}
|
|
R. Leshner and G. Hayes, ``Compound: The Money Market Protocol,'' 2019.
|
|
|
|
\bibitem{uniswap}
|
|
H. Adams, ``Uniswap: A Protocol for Decentralized Exchange and Automated Liquidity Provision on Ethereum,'' 2018.
|
|
|
|
\bibitem{gnosis}
|
|
Gnosis, ``Safe: Multi-Signature Wallet Infrastructure,'' Technical Documentation, 2021.
|
|
|
|
\bibitem{openzeppelin}
|
|
OpenZeppelin, ``OpenZeppelin Contracts: Secure Smart Contract Development,'' 2021.
|
|
|
|
\bibitem{iucn}
|
|
IUCN, ``The IUCN Red List of Threatened Species,'' Version 2021-1, 2021.
|
|
|
|
\bibitem{wwf}
|
|
World Wildlife Fund, ``Living Planet Report 2020,'' 2020.
|
|
|
|
\bibitem{cites}
|
|
CITES, ``Convention on International Trade in Endangered Species of Wild Fauna and Flora,'' 1975.
|
|
|
|
\bibitem{ronin}
|
|
Ronin Network, ``Ronin Bridge Post-Mortem,'' 2022.
|
|
|
|
\bibitem{erc1155}
|
|
W. Radomski et al., ``EIP-1155: Multi Token Standard,'' Ethereum Improvement Proposals, 2018.
|
|
|
|
\bibitem{erc20}
|
|
F. Vogelsteller and V. Buterin, ``EIP-20: Token Standard,'' Ethereum Improvement Proposals, 2015.
|
|
|
|
\bibitem{vrf}
|
|
S. Goldberg et al., ``Verifiable Random Functions (VRFs),'' IETF RFC~6979, 2013.
|
|
|
|
\bibitem{gpt3}
|
|
T. Brown et al., ``Language Models are Few-Shot Learners,'' NeurIPS, 2020.
|
|
|
|
\bibitem{arkit}
|
|
Apple Inc., ``ARKit: Augmented Reality for iOS,'' 2017.
|
|
|
|
\bibitem{arcore}
|
|
Google LLC, ``ARCore: Augmented Reality SDK for Android,'' 2018.
|
|
|
|
\bibitem{hololens}
|
|
Microsoft, ``HoloLens: Mixed Reality Headset,'' 2016.
|
|
|
|
\end{thebibliography}
|
|
|
|
\end{document}
|