DOCS
EPITAPH PROTOCOL v0.1.0 — Documentation EpitaphCore.sol — Base · ETH · SOL Non-custodial · Trustless · Immutable EPITAPH PROTOCOL v0.1.0 — Documentation EpitaphCore.sol — Base · ETH · SOL Non-custodial · Trustless · Immutable
```

Documentation

EPITAPH PROTOCOL v0.1.0 · BETA


Epitaph is a non-custodial, on-chain last will protocol. It allows any wallet owner to deploy immutable final instructions — asset transfers, token burns, encrypted messages — that execute automatically when predefined trigger conditions are met.

No lawyers. No notaries. No intermediaries. Just code.

// NOTE

Epitaph is currently in beta. Smart contracts are pending audit. Use on mainnet at your own risk.

Key Properties

  • Non-custodial — Epitaph never holds your assets
  • Trustless — Smart contracts execute without human intermediary
  • Immutable on execution — Once trigger fires, cannot be stopped
  • Owner-controlled — Only you can modify before execution
  • Multi-chain — Base, Ethereum, Solana, Polygon

Quick Start


1. Connect Your Wallet

Visit epitaph-agent.xyz and connect your wallet via MetaMask, Coinbase Wallet, or any WalletConnect-compatible wallet.

2. Configure Your Will

Set your trigger condition, beneficiary wallets, asset distribution, and an optional encrypted final message.

// Example: Deploy via CLI
$ epitaph connect --wallet 0x7f3a...9c2b
```

→ Found: 4.2 ETH | 12,000 USDC | 3 NFTs
✓ Wallet connected.

$ epitaph will   
–trigger inactivity_180d   
–beneficiary 0x4e1…b83f:60   
–beneficiary 0x9a2…c11d:40   
–message “encrypted://QmHash…”

$ epitaph deploy –sign
⚠ Irreversible. Confirm? [y/N]: y
✓ Will deployed. Block #21847293. Immutable. Eternal.
```

3. Stay Active

For inactivity-based wills, any on-chain transaction from your wallet resets the timer. You can also explicitly ping:

$ epitaph ping --will-id 7
```

✓ Activity confirmed. Timer reset.
```

Core Concepts


Will Lifecycle

DEPLOY → ACTIVE → [trigger met] → EXECUTED
            ↓
       [owner revokes]
            ↓
        REVOKED

Protocol Fee

Epitaph charges a 0.5% fee (50 basis points) on assets distributed upon execution. There are no upfront costs, no subscriptions, and no gas fees beyond network costs.

ActionFee
Deploy willGas only
Ping activityGas only
Revoke willGas only
Execute will0.5% of distributed assets

Trigger Types


INACTIVITY

Executes if the owner wallet has no on-chain activity for a specified number of days. Minimum 30 days, maximum 3,650 days (10 years).

TriggerType.INACTIVITY
```

inactivityDays: 180  // 6 months of silence
```

DATE

Executes at a specific Unix timestamp. Useful for time-locked transfers or scheduled distributions.

TriggerType.DATE
```

triggerDate: 1893456000  // Jan 1, 2030
```

MULTISIG

Requires 2-of-3 designated guardian addresses to confirm before execution. Useful as an additional safeguard against false inactivity triggers.

TriggerType.MULTISIG
```

guardians: [0xGuardian1, 0xGuardian2, 0xGuardian3]
threshold: 2  // 2 of 3 must confirm
```

PRICE SOON

Executes when an asset price crosses a threshold, verified via Chainlink oracle.

Actions


ActionDescriptionStatus
TRANSFERSend ETH and ERC20 tokens to beneficiaries per shareLIVE
BURNSend tokens to 0x000...dead address permanentlyLIVE
DAO_DONATETransfer assets to a specified DAO treasuryLIVE
ALLTransfer + deliver final message simultaneouslyLIVE

Smart Contracts


ContractNetworkAddress
EpitaphCoreBase Mainnetpending deployment
EpitaphCoreBase Sepoliapending deployment

deployWill()

function deployWill(
```

TriggerType   _triggerType,
ActionType    _actionType,
uint256       _inactivityDays,
uint256       _triggerDate,
Beneficiary[] _beneficiaries,
string        _encryptedMsg,
address[3]    _guardians
) external returns (uint256 willId)
```

executeWill()

Can be called by anyone — designed for Chainlink Automation or Gelato.

function executeWill(
```

uint256   willId,
address[] tokens
) external nonReentrant
```

revokeWill()

function revokeWill(uint256 willId) external
```

// Only callable by will owner. Irreversible.
```

pingActivity()

function pingActivity(uint256 willId) external
```

// Resets inactivity timer. Prove you are still alive.
```

Automation


Epitaph wills are executed by on-chain automation networks. No centralized server is required.

Chainlink Automation

Register your will with Chainlink Automation to have it monitored and executed automatically when trigger conditions are met.

Gelato Network

Alternative automation provider. Lower cost for high-frequency monitoring.

// WARNING

If no automation is registered, the will must be manually executed by calling executeWill() after the trigger fires.


EPITAPH PROTOCOL v0.1.0 · epitaph-agent.xyz · GitHub

```