This SDK provides convenient access to Circle's Smart Contract Platform APIs for applications written in NodeJS. For the API reference, see the Circle Web3 API docs.
Install the package with:
npm install @circle-fin/smart-contract-platform --save
or
yarn add @circle-fin/smart-contract-platform
-
Generate an API key, if you haven't already, in the Web3 Services Console. This API key will be used for authentication and authorization when making requests to Circle's APIs.
-
Register an entity secret following Circle's Developer-Controlled QuickStart. This step ensures that your account is correctly set up to interact with Circle's APIs.
-
In your code, import the factory
initiateSmartContractPlatformClient
from the SDK and initialize the client using your API key and entity secret:const { initiateSmartContractPlatformClient } = require('@circle-fin/smart-contract-platform') const client = initiateSmartContractPlatformClient({ apiKey: '<your-api-key>', entitySecret: '<your-entity-secret>', })
or
import { initiateSmartContractPlatformClient } from '@circle-fin/smart-contract-platform' const client = initiateSmartContractPlatformClient({ apiKey: '<your-api-key>', entitySecret: '<your-entity-secret>', })
-
Interact with the client:
const response = await client.deployContract({ name: 'First Contract', description: 'My first hello world contract', walletId: '004735f6-d9fc-44f8-933c-672cdf3d240d', abiJson: "[\n\t{\n\t\t'inputs': [],\n\t\t'stateMutability': 'nonpayable',\n\t\t'type': 'constructor'\n\t},\n\t...", bytecode: '0x60806040523480156200001157600080fd5b50604051806040...', constructorParameters: ['TICK', 10000], feeLevel: 'MEDIUM', }) console.log(response.data)
We recommend reading through the official documentation and QuickStart guides mentioned above to ensure a smooth setup and usage experience.
The client accepts the following configuration parameters:
Option | Required | Description |
---|---|---|
apiKey |
[x] | Api Key that is used to authenticate against Circle APIs. |
entitySecret |
[x] | Your configured entity secret. You can follow the QuickStart to set it up. |
baseUrl |
[ ] | Optional base URL to override the default: https://api.circle.com . |
storage |
[ ] | Optional custom storage solution for persisting data. We will fallback to InMemoryStorage if none was provided. |
userAgent |
[ ] | Optional custom user agent request header. We will prepend it to default user agent header if provided. |
Here are some helpful links, if you encounter any issues or have questions about this SDK:
- 📖 Getting started: Check out our official Developer-Controlled Wallets QuickStart.
- 🎮 Join our Discord Community: Engage, learn, and collaborate.
- 🛎 Visit our Help-Desk Page: Dive into curated FAQs and guides.
- 📧 Direct Email: We're always a message away.
- 📖 Read docs: Check out our developer documentation.
Happy coding!