Deployed addresses
All addresses are on Story Aeneid testnet (chain id 1315). There is no mainnet deployment.
These addresses can change as we redeploy during development. Always check
sdk/src/constants.ts in the source repo for the current authoritative list.
If the docs and the SDK constants disagree, the SDK constants win.
SealedIP contracts
SealedAuction
0xb41B87f2E58E3f6139d6B6D2323C7AdFd47FC9ee
The auction state machine. Manages auctions, sealed bids, sealed reserves, and atomic settlement with PIL license token minting.
Superseded addresses (do not use): 0xfe02F92c4935CB7E422310890c4C511D17766561 (v3),
0x117Fb29...AF302.
AuctionRevealCondition
0x1A3cCd475CCFb47D1353f62F3bca6DEfAC3D69bC
The CDR read condition gating validator share publishing: deadline elapsed AND
auction triggered. Replaced the earlier TimeBasedReadCondition (deadline-only
gate), which has been deleted.
Superseded address (do not use): 0xF3cc...E8B7.
SealedIP Marketplace collection (SPGNFT)
0xd93d0d164a4a1836e4c414c60c5aacf2edb93f23
The shared SPGNFT collection that new IPs minted through the mint-and-list
flow end up in. Anyone can mint into it via
RegistrationWorkflows.mintAndRegisterIp.
Story Protocol contracts (Aeneid)
These are Story's official deployments; SealedIP does not operate them.
LicensingModule
0x04fbd8a2e56dd85CFD5500A4A4DfA955B9f1dE6f
Entry point for attaching PIL terms to IPs and minting license tokens at settlement.
PILicenseTemplate
0x2E896b0b2Fdb7457499B56AAaA4AE55BCB4Cd316
Registers and stores PIL terms structs. Identical structs return the same id (idempotent registration).
LicenseRegistry
0x529a750E02d8E2f15649c13D69a465286a780e24
Stores the (IP, attached terms) mapping. SealedIP reads
getAttachedLicenseTermsCount and getAttachedLicenseTerms from here in
the existing-IP picker.
License token
0xFe3838BFb30B34170F00030B52eA4893d8aAC6bC
The ERC-721 collection where license tokens minted at settlement land.
RoyaltyPolicyLAP
0xBe54FB168b3c982b7AaE60dB6CF75Bd8447b390E
Liquid Absolute Percentage royalty policy. Used by SealedIP's commercial presets.
RoyaltyPolicyLRP
0x9156e603C949481883B1d3355c6f1132D191fC41
Liquid Relative Percentage royalty policy. Available but not currently used by any SealedIP preset.
RegistrationWorkflows (SPG)
0xbe39E1C756e921BD25DF86e7AAa31106d1eb0424
Story Periphery helper for the mint-and-list flow's first transaction.
LicenseAttachmentWorkflows (SPG)
0xcC2E862bCee5B6036Db0de6E06Ae87e524a79fd8
Story Periphery helper for license attachment.
Token contracts
WIP (Wrapped IP)
0x1514000000000000000000000000000000000000
ERC-20 wrapping native IP. Used for all SealedIP deposits and payouts.
CDR threshold network
CDR contract
0xCCCcCC0000000000000000000000000000000005
The on-chain entry point for the CDR threshold-decryption network. A Story
system contract, operated by piplabs. Not verified on Storyscan; SealedIP
interacts with it via the ICDR interface.
Pre-registered PIL terms
Non-Commercial Social Remixing
licenseTermsId = 1
Story Protocol's canonical preset. Pre-registered on every Story deployment. Used by SealedIP's "Non-commercial / Social remixing" preset.
SealedIP demo locked-down
licenseTermsId = 2834
Terms registered during SealedIP's Phase 0 demo (May 2026). Used by the "Personal use only" preset. Specific to this hackathon deployment.
Network info
| Property | Value |
|---|---|
| Chain name | Story Aeneid testnet |
| Chain id | 1315 |
| RPC URL | https://aeneid.storyrpc.io |
| Explorer | https://aeneid.storyscan.io |
| Faucet | https://aeneid.faucet.story.foundation |
| Block time | ~1 second |
| Native token | IP (wrap to WIP for SealedIP) |