npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@inco/automata-dcap-attestation

v1.0.0

Published

Automata DCAP Attestation EVM contracts and ABIs.

Readme

Automata DCAP Attestation on EVM Guide

Integration

To integrate your contract with Automata DCAP Attestation, you need to first install Foundry.

Add to your dependency, by running:

forge install automata-network/automata-dcap-attestation

Then, add the following to your remappings.txt

@automata-network/dcap-attestation/=lib/automata-dcap-attestation/contracts/

Example

import "@automata-network/dcap-attestation/AutomataDcapAttestationFee.sol";

contract ExampleDcapContract {

    AutomataDcapAttestationFee attest;

    constructor(address _attest) {
        attest = AutomataDcapAttestationFee(_attest);
    }

    // On-Chain Attestation example
    function attestOnChain(bytes calldata quote) public {
        (bool success, bytes memory output) = attest.verifyAndAttestOnChain(quote);

        if (success) {
            // ... implementation to handle successful attestations
        } else {
            string memory errorMessage = string(output);
            // ... implementation to handle failed attestations
        }
    }

    // SNARK Attestation example
    // ZkCoProcessorType can either be RiscZero or Succinct
    function attestWithSnark(
        bytes calldata output,
        ZkCoProcessorType zkvm,
        bytes calldata proofBytes
    ) public 
    {
        (bool success, bytes memory output) = attest.verifyAndAttestWithZKProof(
            output,
            zkvm,
            proofBytes
        );

        if (success) {
            // ... implementation to handle successful attestations
        } else {
            string memory errorMessage = string(output);
            // ... implementation to handle failed attestations
        }
    }

}

BUIDL 🛠️

Getting Started

Clone this repo, by running the following command:

git clone https://github.com/automata-network/automata-dcap-attestation.git --recurse-submodules

Building With Foundry

Compile the contracts:

forge build

Testing the contracts:

forge test

To view gas report, pass the --gas-report flag.

To provide additional test cases, please include those in the /forge-test directory.

To provide additional scripts, please include those in the /forge-script directory.

Deployment Scripts

Before beginning with contract deployment, it is recommended that you store your wallet key as an encrypted keystore using cast wallet import

cast wallet import -k keystores dcap_prod --interactive

You may also simply pass your wallet key to the PRIVATE_KEY environment variable, but we do not recommend doing this with production keys.

Deploy the PCCS Router:

make deploy-router RPC_URL=<rpc-url>

Deploy Automata DCAP Attestation Entrypoint:

make deploy-attestation RPC_URL=<rpc-url>

Automata DCAP Entrypoint zkVM Configuration

| zkVM | zkVM Selector | zkVM Program ID | | --- | --- | --- | | RiscZero | 1 | 0x4cf071b3cc25d73e77f430b65f5700dd53522dacc21c1bfc0862b2e46fda3584 | | SP1 | 2 | 0x0036efd519bb371b29a40322e40031833716e9441c6907f8aefc5e52ceebc9a6 |

make config-zk RPC_URL=<rpc-url> ZKVM_SELECTOR=<number> ZKVM_VERIFIER_ADDRESS=<address> ZKVM_PROGRAM_IDENTIFIER=<identifier>

Deploy Quote Verifiers For All Supported Versions:

make deploy-all-verifiers RPC_URL=<rpc-url>

Currently, we only support V3 and V4 quotes.

Deploy Quote Verifier For A Specific Version

make deploy-verifier RPC_URL=<rpc-url> QUOTE_VERIFIER_VERSION=<ver>

Add QuoteVerifier(s) to the Entrypoint contract:

make config-verifier RPC_URL=<rpc-url> QUOTE_VERIFIER_VERSION=<ver>

ℹ️ NOTE: This command automatically grants the Quote Verifier read access to the PCCS Router.

Explicitly Granting or Revoking the access privilege for the specified caller address to the PCCS Router

make config-router RPC_URL=<rpc-url> CALLER_ADDRESS=<address> AUTHORIZED=<true | false>