Skip to main content

Extend a deployed contract's storage entry TTL

You can use the Stellar CLI to extend the TTL of a contract's persistent storage entry. For a storage entry that uses a simple Symbol as its storage key, you can run a command like so:

stellar contract extend \
--source S... \
--network testnet \
--id C... \
--key COUNTER \
--ledgers-to-extend 535679 \
--durability persistent

This example uses 535,679 ledgers as the new archival TTL. This is the maximum allowable value for this argument on the CLI. This corresponds to roughly 30 days (averaging 5 second ledger close times).

If your storage entry uses a more advanced storage key, such as Balance(Address) in a token contract, you'll need to provide the key in a base64-encoded XDR form:

stellar contract extend \
--source S... \
--network testnet \
--id C... \
--key-xdr AAAABgAAAAHXkotywnA8z+r365/0701QSlWouXn8m0UOoshCtNHOYQAAAA4AAAAHQmFsYW5jZQAAAAAB \
--ledgers-to-extend 535679 \
--durability persistent
info

Be sure to check out our guide on creating XDR ledger keys for help generating them.