SmartContract in Pi SDK: Officially Released but Undocumented Feature
In the dev-questions channel of the Pi Network Developer Discord, a developer reported a specific technical issue: their application called Pi.SmartContract.submitTransaction(unsignedXdr) in the Testnet Sandbox environment, the request reached the native bridge, but returned "App unauthorized to call this message".
The official contact's reply was: smart contract functionality is not yet finalized, currently for internal use only, and further announcements will be made when there is more news.
OrbitWatch reviewed the public file sdk.minepi.com/pi-sdk.js, which Pi Browser automatically loads and executes, confirming the actual status of this feature.
This is Not a Developer-Invented Method Name
Upon reviewing the published SDK source code, Pi.SmartContract indeed exists and its structure is quite complete:
- Provides two methods:
submitTransaction()andpollTransaction() - Internal message type is clearly named
@pi:app:sdk:submit_smart_contract_transaction, consistent with the SDK's existing internal communication naming rules - Two submodules,
SubscriptionandNativeToken, have been encapsulated - Testnet contract addresses are hardcoded in the code as default values (
TESTNET_SUBSCRIPTION_CONTRACT_ADDRESS,TESTNET_PI_SAC_CONTRACT_ADDRESS)
The Subscription module corresponds to the PiRC2 subscription contract that OrbitWatch previously reviewed—that contract is not just a source code example on GitHub, but has already been deployed to Testnet and encapsulated within the officially released SDK.
Why General Developers Can't See This Feature Using Official Tutorials
The source code contains a version judgment logic:
Pass version: "2.0" during initialization → SmartContract service not enabled
Pass version: "3.0" during initialization → SmartContract service enabled
Currently, the tutorial examples in the official public documentation (pi-platform-docs) all use Pi.init({ version: "2.0" }). This means that even if developers follow the official documentation completely, they will not get the SmartContract object—because the documentation has never taught them to pass version: "3.0".
Testnet Connection Parameters
The SDK source code also includes the default connection settings for the SmartContract service:
RPC URL: https://rpc.testnet.minepi.com
Network passphrase: Pi Testnet
These two parameters were previously unavailable in the official documentation but are indeed present in the published SDK file.
What This Means
Putting this discovery together with previous observations:
- Official progress on Soroban smart contracts is more mature than what public documentation presents—with Testnet deployment, encapsulation in the officially released SDK, and a version control mechanism
- However, these advancements are currently intentionally not written into public documentation and are not yet open for third-party applications to call
- The official response is consistent with the state presented in the code: the functionality exists, but it is "not finalized"
This does not mean developers can start integrating smart contracts now. Third-party applications calling this functionality are currently confirmed to be blocked by unauthorized. This log records "what the official team has achieved so far," not an operational guide.
Explanation of the Verification Method
The information above comes from inspecting sdk.minepi.com/pi-sdk.js—this is a public file that any webpage loading the Pi SDK automatically downloads and executes. Viewing the downloaded source code using browser developer tools is a public, common technical practice and does not involve bypassing any protection mechanisms or unauthorized access. RPC addresses and passphrases are connection setting information, not confidential data that can be used to steal assets or forge transactions.
Further Reading
- Pi Network Smart Contract Status: What Can Developers Actually Do After V23?
- Pi Ecosystem Developer Status: How Far Between Investment and Return?
Data Source: Pi Network Developer Discord (public discussions in dev-questions channel), sdk.minepi.com/pi-sdk.js (officially published SDK file, directly observed on 2026/8/16). All analyses do not constitute investment advice. OrbitWatch is an independent Pi Network ecosystem observatory, not affiliated with Pi Network official.
Key Points
- •Pi Network's SDK contains an undocumented `Pi.SmartContract` module with methods like `submitTransaction`, confirmed by inspecting the public `pi-sdk.js` file.
- •This smart contract functionality is enabled by initializing the SDK with `version: "3.0"`, but official documentation still instructs developers to use `version: "2.0"`, effectively hiding the feature.
- •While the feature is deployed on Testnet and integrated into the SDK, it's currently for internal use only, and third-party applications are unauthorized to call it.