Announcing CAP: Asset History on the Internet Computer 📜

Today we’re announcing CAP (short for Certified Asset Provenance), an open internet service that brings transaction history and asset provenance to the IC . Plus a BONUS announcement on our first (and very special) NFT collection: CAP Crowns.

CAP
CAP — Certified Asset Provenance
8 min readOct 28, 2021

--

Internet Computer folk, today we’re excited to announce CAP (short form for Certified Asset Provenance). CAP is an open internet service that brings transaction/activity history as a service for Tokens & NFTs and any assets on the Internet Computer.

CAP is currently in the final stages of development/testing and today we’re sharing an early-access into its repositories so projects looking to use CAP can start preparing/integrating 🤙 (we already have some dope launch partners — details later in the blog), and also to start gathering technical/community feedback.

We expect to release the full V1 to IC mainnet next week!

As you might see, documentation in the repos is looking light at the moment (we’re a little behind, focused on testing!). But don’t worry, in the next days we will fill the gaps in with dope examples, and guides😉

Why build CAP for the IC? 🤔

Unlike Ethereum, the Internet Computer does not have native transaction history. Hmmm, sounds like a potential issue 🤔 It is! Without transaction history, we lose a lot of the transparency that is defacto to web3 (and critical for assets like tokens & NFT’s). This leads to sub-par experiences for IC users.

You’d never know if you were truly getting a good price for your favorite NFT, or be able to see the flow of tokens/NFT’s in and out of your wallet (trust us we know, it’s the main customer complaint we get from Plug users, which is how we came up with the idea for CAP in the first place) 😟

As it is right now (pre CAP), transaction history is being developed on a per-project basis (ex. each token or NFT would have to implement it themselves), and unfortunately not many projects are even bothering doing it (meaning their token or NFT has no history at all!). And for the few that are doing history themselves, every implementation is different.

With many different token standards (fungible and non-fungible), an app that wants to consume history data from multiple sources would have to implement each source by hand. This problem makes it increasingly difficult for projects, apps, assets, and history of those assets to interoperate at scale.

There must be a better way!

CAP: Certified Asset Provenance for the IC 📖

Introducing CAP, a standard agnostic open internet service for fungible and non-fungible tokens to record Internet Computer wide transaction history and asset provenance.

CAP as an open internet service works the following way. The main canister for CAP acts as an orchestrator that can spawn new history canisters for individual projects (NFTs, Token Canisters, DEX’s, etc.).

This new history canister will only accept transaction submissions from the canister/asset that initialized it. In a nutshell, CAP deploys a transaction history infrastructure that only your canister/asset (NFT/token)can use!

And once you do so, you can connect your canister/asset by connecting the transaction method to your new canister/asset specific CAP history canister, automatically passing the transaction records when a transaction/event is executed.

Now that your CAP history canister is bustling with transaction data, and you can surface that transaction data directly from your NFT / Token’s canister, using the same methods as before.

Wait, How do UI’s & Apps Surface Transactions? 🤔

Thinking “but every app will have to call each individual NFT/Token canister to see transactions?”. Nope, any frontend & UI can consume any CAP transaction data from the main CAP canister.

It has a secondary purpose! It acts as a router, meaning UI’s and apps can just talk to one canister (CAP) to fetch data from ANY project using CAP.

And voila! Provenance, history, and some much needed transparency restored to the Internet Computer ecosystem 🥳

The current transaction threshold for single history canister storage is 400,000 transactions on the conservative side. However, for projects that are transaction heavy (ex. fungible token projects), CAP will soon implement a history scaling solution that allows for infinite transaction storage.

Which is another awesome benefit of using CAP — rather than each project needing to worry about building, maintaining, and scaling their own history; now they can just seamlessly outsource that work to CAP and automatically benefit from any future improvements made to CAP!

Early Data Redundancy Off-chain 🗄️

We know that it’s still early days for the Internet Computer, and for CAP, so on release of CAP, Psychedelic will backup all CAP data off-chain for extra data security/redundancy, and at no cost to CAP or it’s users.

This is just to ensure that data can never be lost, and even in the unlikely event of an IC upgrade that corrupts canister data, we can always restore history and keep all the historical transaction data preserved. We will probably also periodically back it up to Filecoin starting shortly after launch.

Integrating CAP 🛠

As we said, CAP will release fully to mainnet next week, but we’re still open sourcing our repositories today so that any developer team wanting to be ready for integration can start seeing how CAP works, and provide feedback as we finalize its development.

Once again, this is an early look at the interfaces/code pre-launch to mainnet. We’re light on documentation as we focus on testing, but we will add examples & guides in the coming days!😉

Adding CAP To a New or Existing Project 🧰

Integrating CAP will be made especially easy with the help of the CAP SDK. Regardless of if you’re a new or existing project, the SDK will allow you to instantiate a CAP root canister, feed your transaction data to that canister, and begin populating your asset history.

For people who are comfortable integrating APIs into their canister, the process shouldn’t take more than 30 minutes. For the less technically experienced, please reach out on Discord, our team is happy to help you integrate CAP.

Querying CAP Data 🛰️

Consuming CAP transaction data will be just as easy, if not easier, than generating it! We’re developing CAP-js, a javascript library for querying CAP data, for just this purpose.

While only the canister that initialized the history canister can write transactions, frontends will not be limited to what transaction data they can query. As a result, asset transparency becomes the default. 🤟

Templates 📦

Alongside the launch of the CAP SDK & CAP-js, we’ll be launching NFT and Token templates that have CAP already built in. We do the heavy lifting, and you can focus on all the other logic that makes your project unique!

Early Supporters in the Ecosystem Using CAP 🤝

We have been jamming with several projects in the IC ecosystem to get early feedback on CAP, and start preparing to have the first NFTs and Tokens with CAP integrated and providing them with an activity history after the release arrives!

Which projects are we talking about? ⭐

  1. Moonwalkers
  2. Cycles Token (XTC)
  3. DFinance
  4. Portal
  5. ICSnakes
  6. Plug
  7. ICPSquad

We’ll be working hand-in-hand to integrate CAP and start bringing users the answers to the questions they got today: “where did my NFT go?”, “how much did this sell for last?”, “How can I see the history for my transactions?”.

Don’t see your favorite project on our early supporters list? Send them this article! And put pressure on them to add history to their token/NFT. Transaction history and asset provenance shouldn’t be something users need to ask for anyways. It’s an industry standard. It’s how things work on every other chain.

And once the initial hype dies down for IC assets and NFT’s just because it’s ‘new’ (which is already starting to happen), the only assets that will be taken seriously or retain any value long term are ones that have history / provenance. CAP will make it extremely easy and quick to do so there really is no reason for any project on the IC to not have transaction history for their token or NFT.

Plug’s Integration and Role 🔌

Wait, how’s Plug going to integrate CAP? In two ways. First, to show user’s the transaction history for integrated CAP assets in the activity tab, of course!

But, more importantly, Plug will also integrate CAP to play an important role in seeding the transaction history for any project that can be held/surfaced in Plug, whether it has already integrated CAP or not.

This way, Plug can help create an early activity history for all projects, and provide users of the wallet a visible activity history in their “Activity” tab starting next week! And then when each new token/NFT fully integrates CAP it will already have some records to populate their history canister .

But, to be perfectly clear, we strongly recommend that projects fully integrate CAP directly into their canisters so all activity across the entire IC will be captured, and not just activity going through Plug.

Wait, you mentioned a BONUS announcement about an NFT? What are CAP CROWNS? 👑

Oh, yeah. You’re right. We almost forgot about that.

Time to drop some alpha.

In addition to the other projects in the space mentioned above who are CAP launch partners,

We’re creating our own NFT collection to help set an example for best practices for an NFT on the IC as well as showcase the power of CAP: CAP Crowns.

Stay tuned, because we’re making the full CAP Crowns reveal & announcement tomorrow!

Wrapping it up 🗞

Asset provenance (or lack thereof) is something we’ve been working on (and dealing with) for a while and feel it’s a crucial missing piece for mass adoption of the Internet Computer.

It starts with assets, and we hope to see it grow into “activity provenance” in the future. Where we can help build and develop a history/provenance system for any sort of IC canister events/interactions.

Thinking ahead, we also believe CAP could play an interesting role in the BTC/ETH integrations to the IC; helping to properly represent and utilize assets from other chains on the IC.

Look out for the V1 launch of CAP next week, and in the meantime would love to hear some feedback from the community. If you have any questions, ideas, or concerns, feel free to hop in our Discord to jam with some of our team members. 🤙

--

--

CAP
CAP — Certified Asset Provenance

Certified Asset Provenance — An open internet service on the Internet Computer.