Skip to main content


Imports can take your idea and team productivity to the next level 馃殌. Through imports, we can reduce the amount of code, we need to write by using CIDLs provided by C贸digo or the community to write composable CIDLs.


You can define any number of imports required for your use case.


Imported CIDL can reference types, methods, and Solana seed definition


imports is an array of objects where each object is a CIDL that will be imported

- ref: compression
loc: ./solana_state_compression.cidl
progid: cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK

Currently, loc only supports the file system.


Imports Body

The import object defines from where the CIDL is being imported

refstringRequiredReference name. Used as a prefix when an element of this CIDL is used locally. Each ref has to be unique
locstringRequiredLocation of the CIDL. The location can be: Local File System, URL (GitHub, HTTP), CIDL Hub. Locations can include a version indicator to lock the external CIDL to a stable version
Solana Import Extension

The solana import extension object defines the additional configuration for the CIDL import

progidPublicKeyRequiredThe Program ID ( as a Public Key ) of the Program generated by the imported CIDL.

Web-based documentation

The imports object can be visualized in the CIDL web-based doc. The documentation is automatically generated from our vscode-codigo extension.

CIDL Web-based doc

Next steps

We are almost done with this learning path that began with the documentation on native and extended data types, read about native and extended data types here. To finalize this journey follow the following links:

Join the C贸digo community 馃挌

C贸digo is a growing community of developers. Join us on Discord and GitHub