curl --request PATCH \
--url https://api.circle.com/v1/w3s/contracts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "First Contract",
"description": "My first hello world contract",
"archived": false
}
'import requests
url = "https://api.circle.com/v1/w3s/contracts/{id}"
payload = {
"name": "First Contract",
"description": "My first hello world contract",
"archived": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'First Contract',
description: 'My first hello world contract',
archived: false
})
};
fetch('https://api.circle.com/v1/w3s/contracts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.circle.com/v1/w3s/contracts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'First Contract',
'description' => 'My first hello world contract',
'archived' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.circle.com/v1/w3s/contracts/{id}"
payload := strings.NewReader("{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.circle.com/v1/w3s/contracts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.circle.com/v1/w3s/contracts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"contract": {
"id": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
"archived": false,
"blockchain": "MATIC-AMOY",
"name": "First Contract",
"updateDate": "2023-01-01T12:04:05Z",
"createDate": "2023-01-01T12:04:05Z",
"sourceCode": [
{
"fileContent": "pragma solidity ^0.4.24;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks...",
"fileName": "openzeppelin-solidity/contracts/math/SafeMath.sol"
}
],
"functions": [
{
"type": "function",
"name": "approve",
"stateMutability": "nonpayable",
"inputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
],
"outputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
]
}
],
"events": [
{
"type": "event",
"name": "Approval",
"anonymous": false,
"inputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
]
}
],
"deployerWalletID": "f39e3dbd-84af-4d3d-b5ac-98fbe047ce6a",
"deploymentTransactionId": "00ca46f3-c31b-4e3a-92a9-068d4ff26a63",
"txHash": "0x4a25cc5e661d8504b59c5f38ba93f010e8518966f00e2ceda7955c4b8621357d",
"abiJson": "[{\"inputs\": [],\"stateMutability\": \"nonpayable\",\"type\": \"constructor\"},...",
"contractAddress": "0x1e124d7384cd34448ea5907bd0052a79355ab5eb",
"deployerAddress": "0x1bf9ad0cc2ad298c69a2995aa806ee832788218c",
"deployerUserID": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deploymentErrorReason": "<string>",
"deploymentErrorDetails": "<string>",
"description": "My first hello world contract",
"metadataLink": "https://ipfs.io/ipfs/Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu",
"implementationContract": {}
}
}
}{
"code": 123,
"message": "<string>"
}Update a contract
Update the off-chain properties, such as description, of a contract that you’ve imported or deployed. Updated using the contracts ID as opposed to the on-chain address.
curl --request PATCH \
--url https://api.circle.com/v1/w3s/contracts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "First Contract",
"description": "My first hello world contract",
"archived": false
}
'import requests
url = "https://api.circle.com/v1/w3s/contracts/{id}"
payload = {
"name": "First Contract",
"description": "My first hello world contract",
"archived": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'First Contract',
description: 'My first hello world contract',
archived: false
})
};
fetch('https://api.circle.com/v1/w3s/contracts/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.circle.com/v1/w3s/contracts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'First Contract',
'description' => 'My first hello world contract',
'archived' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.circle.com/v1/w3s/contracts/{id}"
payload := strings.NewReader("{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.circle.com/v1/w3s/contracts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.circle.com/v1/w3s/contracts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"First Contract\",\n \"description\": \"My first hello world contract\",\n \"archived\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"contract": {
"id": "c4d1da72-111e-4d52-bdbf-2e74a2d803d5",
"archived": false,
"blockchain": "MATIC-AMOY",
"name": "First Contract",
"updateDate": "2023-01-01T12:04:05Z",
"createDate": "2023-01-01T12:04:05Z",
"sourceCode": [
{
"fileContent": "pragma solidity ^0.4.24;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks...",
"fileName": "openzeppelin-solidity/contracts/math/SafeMath.sol"
}
],
"functions": [
{
"type": "function",
"name": "approve",
"stateMutability": "nonpayable",
"inputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
],
"outputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
]
}
],
"events": [
{
"type": "event",
"name": "Approval",
"anonymous": false,
"inputs": [
{
"components": [
"<unknown>"
],
"indexed": true,
"name": "to",
"type": "address",
"flattenedType": "<string>"
}
]
}
],
"deployerWalletID": "f39e3dbd-84af-4d3d-b5ac-98fbe047ce6a",
"deploymentTransactionId": "00ca46f3-c31b-4e3a-92a9-068d4ff26a63",
"txHash": "0x4a25cc5e661d8504b59c5f38ba93f010e8518966f00e2ceda7955c4b8621357d",
"abiJson": "[{\"inputs\": [],\"stateMutability\": \"nonpayable\",\"type\": \"constructor\"},...",
"contractAddress": "0x1e124d7384cd34448ea5907bd0052a79355ab5eb",
"deployerAddress": "0x1bf9ad0cc2ad298c69a2995aa806ee832788218c",
"deployerUserID": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deploymentErrorReason": "<string>",
"deploymentErrorDetails": "<string>",
"description": "My first hello world contract",
"metadataLink": "https://ipfs.io/ipfs/Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu",
"implementationContract": {}
}
}
}{
"code": 123,
"message": "<string>"
}Authorizations
Circle's API Keys are formatted in the following structure "PREFIX:ID:SECRET". All three parts are required to make a successful request.
Headers
Developer-provided identifier for this request, used for tracing requests in Wallets API logs and the Developer Console, and when communicating with Circle Support. Must be a UUID to appear in logs. Non-UUID values are accepted by the API but are ignored by logging and tracing systems.
A unique identifier, which can be helpful for identifying a request when communicating with Circle support.
"2adba88e-9d63-44bc-b975-9b6ae3440dde"
Path Parameters
The universally unique identifier of the resource.
"b3d9d2d5-4c12-4946-a09d-953e82fae2b0"
Body
Update contract properties request
The name for a contract. Must be alphanumeric [a-zA-Z0-9].
"First Contract"
The description for a contract.
"My first hello world contract"
The archive state of the contract. If true, the contract will not be visible in your dashboard.
false
Response
Contract is updated.
Show child attributes
Show child attributes
Was this page helpful?