POST
/
public
/
v1
/
submit
/
create_smart_contract_interface
Authorizations
Body
enum<string>
required
Enum options:
ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACEstring
required
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
string
required
Unique identifier for a given Organization.
object
required
The parameters object containing the specific intent data for this activity.
Show details
Show details
Enum options:
SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM, SMART_CONTRACT_INTERFACE_TYPE_SOLANAboolean
Enable to have your activity generate and return App Proofs, enabling verifiability.
Response
A successful response returns the following fields:object
required
The activity object containing type, intent, and result
Show activity details
Show activity details
The intent of the activity
Show intent details
Show intent details
The createSmartContractInterfaceIntent object
Show createSmartContractInterfaceIntent details
Show createSmartContractInterfaceIntent details
Corresponding contract address or program ID
ABI/IDL as a JSON string. Limited to 400kb
type fieldEnum options:
SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM, SMART_CONTRACT_INTERFACE_TYPE_SOLANAHuman-readable name for a Smart Contract Interface.
The result of the activity
Show result details
Show result details
A list of objects representing a particular User’s approval or rejection of a Consensus request, including all relevant metadata.
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_smart_contract_interface \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"smartContractAddress": "<string>",
"smartContractInterface": "<string>",
"type": "<SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM>",
"label": "<string>",
"notes": "<string>"
}
}'
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createSmartContractInterface({
smartContractAddress: "<string> (Corresponding contract address or program ID)",
smartContractInterface: "<string> (ABI/IDL as a JSON string. Limited to 400kb)",
type: "<SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM>" // type field,
label: "<string> (Human-readable name for a Smart Contract Interface.)",
notes: "<string> (Notes for a Smart Contract Interface.)"
});
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_SMART_CONTRACT_INTERFACE",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g. 1746736509954)",
"result": {
"activity": {
"id": "<string>",
"organizationId": "<string>",
"status": "<string>",
"type": "<string>",
"intent": {
"createSmartContractInterfaceIntent": {
"smartContractAddress": "<string>",
"smartContractInterface": "<string>",
"type": "<SMART_CONTRACT_INTERFACE_TYPE_ETHEREUM>",
"label": "<string>",
"notes": "<string>"
}
},
"result": {
"createSmartContractInterfaceResult": {
"smartContractInterfaceId": "<string>"
}
},
"votes": "<array>",
"fingerprint": "<string>",
"canApprove": "<boolean>",
"canReject": "<boolean>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}
}
}